Browse Source

各项目经营分析报表NC取值-税金和管理费用更新
查找项目点档案更新项目立项

fyz 4 months ago
parent
commit
74c86226a4

+ 9 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -161,6 +161,15 @@ public class TimerController {
     }
 
     /**
+     *
+     * @param projectCode
+     */
+    @PostMapping("getProject")
+    public void getProject(String formInstId,String projectCode,String monthAmount){
+        log.info("开始查找项目点档案更新项目立项");
+        timerService.getProject(formInstId,projectCode,monthAmount);
+    }
+    /**56图
      * 单个修改各项目点月度经营分析
      * @param
      * @return

+ 2 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/TimerService.java

@@ -112,4 +112,6 @@ public interface TimerService {
      * @return
      */
     Map<String, Object> testProjectAnalysisGroup(Map<String, Object> data);
+
+    void getProject(String formInstId, String projectCode, String monthAmount);
 }

+ 6 - 7
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/NCServiceImpl.java

@@ -656,7 +656,7 @@ public class NCServiceImpl implements NCService {
                     "\tWHERE\n" +
                     "\t\tsubstring( bd_account.CODE, 0, 5 ) IN ( '6603' ) \n" +
                     "\t\tAND gl_detail.yearv = '"+year+"' \n" +
-                    "\t\tAND gl_detail.adjustperiod = '10' \n" +
+                    "\t\tAND gl_detail.adjustperiod = '"+month+"' \n" +
                     "\t\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
                     "\t\tAND gl_detail.discardflagv <> 'Y' \n" +
                     "\t\tAND gl_detail.dr = 0 \n" +
@@ -917,27 +917,26 @@ public class NCServiceImpl implements NCService {
                     ps[0].setObject(4,e.get("selectField_lrn2oy4a")==null?null:e.get("selectField_lrn2oy4a").toString());
                     ps[0].setObject(5,sum[7]/1.06/10000);
                     ps[0].setObject(6,sum[8]/1.06/10000);
-                    ps[0].setObject(7,sum[7]/1.06/10000);
+                    ps[0].setObject(7,(sum[7]+sum[0])/1.06/10000);
                     ps[0].setObject(8,person[0]);
                     ps[0].setObject(9,sum[1]/10000);
                     ps[0].setObject(10,sum[2]/10000);
                     ps[0].setObject(11,(sum[3]-sum[2]-sum[1]-sum[9])/10000);
                     ps[0].setObject(12,sum[3]/10000);
-                    ps[0].setObject(13,sum[7]*0.066/1.06/10000);
-                    ps[0].setObject(14,(sum[7]+sum[0]-sum[3])/10000);
+                    ps[0].setObject(13,(sum[7]+sum[0])*0.066/1.06/10000);
+                    ps[0].setObject(14,((sum[7]+sum[0])/1.06-sum[3])/10000);
                     ps[0].setObject(15,(sum[7]+sum[0]) == 0.0 ? 0.0:(sum[7]+sum[0]-sum[3])/(sum[7]+sum[0]));
                     double glfy = 0.0;
                     double corporate_income_tax = 0.0;
                     if ((sumProject+sumSamll) != 0.0){
-                        log.info("日常保洁+小业主:{},合计:{},6801:{}",String.valueOf(sum[7]+sum[0]),String.valueOf(sumProject+sumSamll),sum[6]);
                         corporate_income_tax = (sum[7]+sum[0])/(sumProject+sumSamll)*sum[6];
                         glfy = sum[4]/(sumProject+sumSamll)*(sum[7]+sum[0]);
                     }
                     ps[0].setObject(16,glfy/10000);
                     //企业所得税corporate_income_tax
                     ps[0].setObject(17,corporate_income_tax/10000);
-                    ps[0].setObject(18,((sum[7]+sum[0]-sum[3]) - glfy - corporate_income_tax)/10000);
-                    double net_margin = (sum[7] + sum[0]) == 0.0 ? 0.0:((sum[7] + sum[0] - sum[3]) - glfy - corporate_income_tax) / (sum[7] + sum[0]);
+                    ps[0].setObject(18,((sum[7] + sum[0]) / 1.06 - sum[3] - glfy - corporate_income_tax)/10000);
+                    double net_margin = (sum[7] + sum[0]) == 0.0 ? 0.0:(sum[7] + sum[0] - sum[3] - glfy - corporate_income_tax) / (sum[7] + sum[0]);
                     ps[0].setObject(19,net_margin);
                     String profit_loss = "";
                     if (net_margin < 0){

+ 29 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -17,8 +17,10 @@ import com.malk.service.dingtalk.DDClient_Personnel;
 import com.malk.utils.UtilDateTime;
 import com.malk.utils.UtilExcel;
 import com.malk.utils.UtilMap;
+import com.mysql.cj.util.StringUtils;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -1390,4 +1392,31 @@ public class TimerServiceImpl implements TimerService {
             return null;
         }
     }
+
+    @Override
+    public void getProject(String formInstId, String projectCode, String monthAmount) {
+        List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
+                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                .formUuid("FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC")
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lrr3rg6h", projectCode)))
+                .build());
+
+        double wh = dataList.stream().mapToDouble(map -> Double.parseDouble(map.getOrDefault("numberField_lrn2oy4q", 0.0).toString())).sum();
+        double rg = dataList.stream().mapToDouble(map -> Double.parseDouble(map.getOrDefault("numberField_lrn2oy4p", 0.0).toString())).sum();
+        double amount = monthAmount == null ? 0f : Double.parseDouble(monthAmount);
+        double whRate = 0f;
+        double rgRate = 0f;
+        if (amount != 0f){
+            whRate = wh / amount * 100;
+            rgRate = rg / amount * 100;
+        }
+
+        ydClient.operateData(YDParam.builder()
+                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                .formInstanceId(formInstId)
+                .updateFormDataJson(JSON.toJSONString(UtilMap.map("numberField_m3dvrmfd, numberField_m3dvrmfe, numberField_m3dvrmff, numberField_m3dvrmfg", rg, wh, rgRate, whRate)))
+                .build(), YDConf.FORM_OPERATION.update);
+    }
 }