From 246d78931aa779d0ea2ae6a262cd23494476e80b Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期二, 10 六月 2025 15:58:53 +0800
Subject: [PATCH] zjh20250610

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java |  602 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 502 insertions(+), 100 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
index 0f42f64..f1b3506 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
@@ -1,17 +1,17 @@
 package com.ltkj.web.controller.system;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.*;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+
+import cn.hutool.extra.pinyin.PinyinUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.common.core.domain.entity.SysDept;
 import com.ltkj.common.core.redis.RedisCache;
+import com.ltkj.common.utils.SecurityUtils;
 import com.ltkj.common.utils.bean.BeanUtils;
 import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
 import com.ltkj.hosp.domain.*;
@@ -23,8 +23,13 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import jodd.util.StringUtil;
+import lombok.extern.slf4j.Slf4j;
+import net.sf.ehcache.constructs.scheduledrefresh.OverseerJob;
+import org.apache.ibatis.session.SqlSession;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import com.ltkj.common.annotation.Log;
 import com.ltkj.common.core.controller.BaseController;
@@ -41,6 +46,7 @@
 @RestController
 @RequestMapping("/hosp/project")
 @Api(tags = "浣撴椤圭洰绠$悊")
+@Slf4j
 public class TjProjectController extends BaseController {
     @Resource
     private ITjProjectService tjProjectService;
@@ -64,16 +70,44 @@
     private TestMapper testMapper;
     @Resource
     private RedisCache redisCache;
+    @Autowired
+    private TjProjectXgjlService xgjlService;
+    @Autowired
+    private TjBzProService bzProService;
 
 
     @GetMapping("/getTjHyBgList")
     @ApiOperation(value = "鏌ヨlis鏁版嵁搴撻」鐩俊鎭帴鍙�")
-    public AjaxResult getTjHyBgList(@RequestParam(required = false)String pacCode,
-                                  @RequestParam(required = false)String pacName,
-                                  @RequestParam(required = false)String pacRemark) {
-        List<Map<String, Object>> maps = testMapper.getTjHyBgList(pacCode,pacName,pacRemark);
+    public AjaxResult getTjHyBgList(@RequestParam(required = false) String pacCode,
+                                    @RequestParam(required = false) String pacName,
+                                    @RequestParam(required = false) String pacRemark) {
+        List<Map<String, Object>> maps = testMapper.getTjHyBgList(pacCode, pacName, pacRemark);
         DynamicDataSourceContextHolder.clearDataSourceType();
         return AjaxResult.success(maps);
+    }
+
+    /**
+     * 閫夋嫨浣撴椤圭洰閫夊崟椤规椂璋冪敤鐨勬帴鍙�
+     */
+    @GetMapping("/getDxList")
+    @ApiOperation(value = "閫夋嫨浣撴椤圭洰閫夊崟椤规椂璋冪敤鐨勬帴鍙�")
+    public AjaxResult getDxList() {
+        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
+        String config = configService.selectConfigByKey("tj_dxsxtj");
+        if (null != config && config.equals("N")) {
+            tjProjects = tjProjectService.getOpenDxTjProjectList(null);
+        }
+        if (tjProjects != null) {
+            for (TjProject project : tjProjects) {
+                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
+                project.setTjProjectList(projectList);
+            }
+        }
+        String key = configService.selectConfigByKey("is_open_sfxm");
+        Map<String, Object> map = new HashMap<>();
+        map.put("list", tjProjects);
+        map.put("key", key);
+        return AjaxResult.success(map);
     }
 
 
@@ -88,25 +122,23 @@
         //涓婇潰鐨勬崲sql
         final List<TjProject> tjProjects = tjProjectService.getProBySqlAndName(proName, checkType, deptId);
 
-        if (tjProjects != null) {
-            for (TjProject project : tjProjects) {
-                    List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
-                    project.setTjProjectList(projectList);
-                SysDept sysDept = deptService.selectDeptById(project.getDeptId());
-                if (sysDept!=null){
-                    project.setDeptName(sysDept.getDeptName());
-                }
-
-            }
-        }
+//        if (tjProjects != null) {
+//            for (TjProject project : tjProjects) {
+//                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
+//                project.setTjProjectList(projectList);
+//                SysDept sysDept = deptService.selectDeptById(project.getDeptId());
+//                if (sysDept != null) {
+//                    project.setDeptName(sysDept.getDeptName());
+//                }
+//
+//            }
+//        }
         String key = configService.selectConfigByKey("is_open_sfxm");
-        Map<String,Object> map=new HashMap<>();
-        map.put("list",tjProjects);
-        map.put("key",key);
+        Map<String, Object> map = new HashMap<>();
+        map.put("list", tjProjects);
+        map.put("key", key);
         return AjaxResult.success(map);
     }
-
-
 
 
     /**
@@ -114,12 +146,45 @@
      */
     @GetMapping("/getAllChildListById")
     @ApiOperation(value = "鏌ヨ椤圭洰瀛愰」")
-    public AjaxResult getAllChildListById(String proId) {
-       List<TjProject> tjProjects = tjProjectService.getAllChildListById(proId);
+    public AjaxResult getAllChildListById(@RequestParam(required = false) String proId,
+                                          @RequestParam(required = false) String proName,
+                                          @RequestParam(required = false) String checkType) {
+        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+        if (proId != null) {
+            wq.eq(TjProject::getProParentId, proId);
+        }
+        if (proName != null) {
+            wq.like(TjProject::getProName, proName);
+        }
+        if (checkType != null) {
+            wq.eq(TjProject::getProCheckType, checkType);
+        }
+        List<TjProject> tjProjects = tjProjectService.list(wq);
+//        List<TjProject> tjProjects = tjProjectService.getAllChildListById(proId);
+        if (tjProjects != null) {
+            for (TjProject project : tjProjects) {
+                SysDept sysDept = deptService.selectDeptById(project.getDeptId());
+                if (sysDept != null) {
+                    project.setDeptName(sysDept.getDeptName());
+                }
 
-        return AjaxResult.success(tjProjects);
+            }
+        }
+        String key = configService.selectConfigByKey("is_open_sfxm");
+        Map<String, Object> map = new HashMap<>();
+        map.put("list", tjProjects);
+        map.put("key", key);
+        return AjaxResult.success(map);
+
     }
 
+
+    @GetMapping("/getPacTjProjectList")
+    @ApiOperation(value = "缁存姢濂楅椤甸潰鏂板椤圭洰鏃惰皟鐢�")
+    public AjaxResult getPacTjProjectList() {
+        List<TjProject> tjProjects = tjProjectService.getPacTjProjectList();
+        return AjaxResult.success(tjProjects);
+    }
 
 
     /**
@@ -128,21 +193,31 @@
     @GetMapping("/list")
     @ApiOperation(value = "鏌ヨ浣撴椤圭洰鍒楄〃")
     public AjaxResult list() {
-        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
-        wq.eq(TjProject::getProParentId, 0);
-        wq.eq(TjProject::getProStatus, 0);
-        List<TjProject> tjProjects = tjProjectService.list(wq);
+//        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//        wq.eq(TjProject::getProParentId, 0);
+//        wq.eq(TjProject::getProStatus, 0);
+        List<TjProject> tjProjects = tjProjectService.getTjProjectList();
         if (tjProjects != null) {
             for (TjProject project : tjProjects) {
-                LambdaQueryWrapper<TjProject> wq1 = new LambdaQueryWrapper<>();
-                wq1.eq(TjProject::getProParentId,project.getProId());
-                List<TjProject> projectList = tjProjectService.list(wq1);
+                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
                 project.setTjProjectList(projectList);
             }
             return AjaxResult.success(tjProjects);
         }
         return AjaxResult.success(null);
     }
+
+
+    @GetMapping("/getPacProList")
+    @ApiOperation(value = "鏌ヨ浣撴椤圭洰鍒楄〃")
+    public AjaxResult getPacProList() {
+        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+        wq.eq(TjProject::getProParentId, 0);
+        wq.eq(TjProject::getProStatus, 0);
+        List<TjProject> tjProjects = tjProjectService.list(wq);
+        return AjaxResult.success(tjProjects);
+    }
+
 
     /**
      * 瀵煎嚭浣撴椤圭洰鍒楄〃
@@ -165,12 +240,12 @@
     @ApiOperation(value = "鑾峰彇浣撴椤圭洰璇︾粏淇℃伅")
     public AjaxResult getInfo(@PathVariable("proId") @ApiParam(value = "浣撴椤圭洰id") Long proId) {
         TjProject tjProject = tjProjectService.getById(proId);
-        if(null !=tjProject){
-            if(tjProject.getProParentId()==0){
+        if (null != tjProject) {
+            if (tjProject.getProParentId() == 0) {
                 LambdaQueryWrapper<TjProConsumables> wrapper = new LambdaQueryWrapper<>();
                 wrapper.eq(TjProConsumables::getProId, tjProject.getProId());
                 List<TjProConsumables> list = proConsumablesService.list(wrapper);
-                if(null !=list && list.size()>0){
+                if (null != list && list.size() > 0) {
                     List<TjConsumables> list1 = new ArrayList<>();
                     for (TjProConsumables tjProConsumables : list) {
                         TjConsumables byId = consumablesService.getById(tjProConsumables.getConsumablesId());
@@ -178,14 +253,14 @@
                     }
                     tjProject.setConsumablesList(list1);
                 }
-            }else {
+            } else {
                 LambdaQueryWrapper<TjStandard> wq = new LambdaQueryWrapper<>();
                 wq.eq(TjStandard::getProId, proId);
                 tjProject.setTjStandardList(tjStandardService.list(wq));
             }
             //鏍规嵁姣忎釜椤圭洰鐨刣eptId鎷垮埌name  2023/2/7
             SysDept sysDept = deptService.selectDeptById(tjProject.getDeptId());
-            if (sysDept!=null){
+            if (sysDept != null) {
                 tjProject.setDeptName(sysDept.getDeptName());
             }
             return AjaxResult.success(tjProject);
@@ -201,22 +276,23 @@
     @Log(title = "浣撴椤圭洰", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody @ApiParam(value = "浣撴椤圭洰瀵硅薄") TjProject tjProject) {
-        if (null != tjProject.getConsumablesList() && tjProject.getConsumablesList().size() > 0) {
+        if (null != tjProject.getConsumablesList() && !tjProject.getConsumablesList().isEmpty()) {
             tjProject.setProPrice(BigDecimal.valueOf(0.00));
             tjProject.setProStandard(0);
         }
-        if (null != tjProject.getTjStandardList() && tjProject.getTjStandardList().size() > 0) {
+        if (null != tjProject.getTjStandardList() && !tjProject.getTjStandardList().isEmpty()) {
             tjProject.setProStandard(1);
         }
-        if(tjProjectService.save(tjProject)){
-            if(null != tjProject.getSfxmId()){
-                DictProSfxm proSfxm=new DictProSfxm();
+        tjProject.setProEngName(PinyinUtil.getFirstLetter(tjProject.getProName(),""));
+        if (tjProjectService.save(tjProject)) {
+            if (null != tjProject.getSfxmId()) {
+                DictProSfxm proSfxm = new DictProSfxm();
                 proSfxm.setSfxmId(tjProject.getSfxmId());
                 proSfxm.setProId(tjProject.getProId());
                 dictProSfxmService.save(proSfxm);
             }
             List<TjConsumables> consumablesList = tjProject.getConsumablesList();
-            if (null != consumablesList && consumablesList.size() > 0) {
+            if (null != consumablesList && !consumablesList.isEmpty()) {
                 for (TjConsumables tjConsumables : consumablesList) {
                     TjProConsumables proConsumables = new TjProConsumables();
                     proConsumables.setProId(tjProject.getProId());
@@ -225,7 +301,7 @@
                 }
             }
             List<TjStandard> tjStandardList = tjProject.getTjStandardList();
-            if (null != tjStandardList && tjStandardList.size() > 0) {
+            if (null != tjStandardList && !tjStandardList.isEmpty()) {
                 for (TjStandard tjStandard : tjStandardList) {
                     TjStandard tjStandard1 = new TjStandard();
                     BeanUtils.copyBeanProp(tjStandard1, tjStandard);
@@ -233,28 +309,30 @@
                     tjStandardService.save(tjStandard1);
                 }
                 tjProject.setProStandard(1);
-                if(null ==tjProject.getProPrice()){
+                if (null == tjProject.getProPrice()) {
                     tjProject.setProPrice(BigDecimal.valueOf(0.00));
                 }
                 Long proParentId = tjProject.getProParentId();
-                if(null !=proParentId&&proParentId!=0){
-                    LambdaQueryWrapper<TjProject> wq=new LambdaQueryWrapper<>();
-                    wq.eq(TjProject::getProParentId,proParentId);
-                    List<TjProject> projectList = tjProjectService.list(wq);
-                    if(null !=projectList && projectList.size()>0){
-                        BigDecimal bigDecimal=new BigDecimal("0.00");
+                if (null != proParentId && proParentId != 0) {
+//                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//                    wq.eq(TjProject::getProParentId, proParentId);
+//                    wq.eq(TjProject::getProStatus,0);
+//                    List<TjProject> projectList = tjProjectService.list(wq);
+                    List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(proParentId));
+                    if (null != projectList && !projectList.isEmpty()) {
+                        BigDecimal bigDecimal = new BigDecimal("0.00");
                         for (TjProject project : projectList) {
-                            if (project.getProPrice()!=null){
-                                bigDecimal=bigDecimal.add(project.getProPrice());
+                            if (project.getProPrice() != null) {
+                                bigDecimal = bigDecimal.add(project.getProPrice().multiply(new BigDecimal(project.getSl())));
                             }
                         }
-                        if (tjProject.getProPrice()!=null){
-                            bigDecimal.add(tjProject.getProPrice());
-                        }
+//                        if (tjProject.getProPrice() != null) {
+//                            bigDecimal.add(tjProject.getProPrice());
+//                        }
                         TjProject byId = tjProjectService.getById(proParentId);
                         tjProject.setIsSampling(byId.getIsSampling());
                         tjProjectService.updateById(tjProject);
-                        byId.setProPrice(bigDecimal.setScale(2,BigDecimal.ROUND_DOWN));
+                        byId.setProPrice(bigDecimal);
                         tjProjectService.updateById(byId);
                     }
                 }
@@ -271,27 +349,53 @@
     @Log(title = "浣撴椤圭洰", businessType = BusinessType.UPDATE)
     @PutMapping
     @ApiOperation(value = "淇敼浣撴椤圭洰")
+    @Transactional
     public AjaxResult edit(@RequestBody @ApiParam(value = "浣撴椤圭洰瀵硅薄") TjProject tjProject) {
+        TjProject ytjproject = tjProjectService.getById(tjProject.getProId());
+        if(null==ytjproject)return AjaxResult.error();
         if (tjProject.getProStatus() == 1) {
             LambdaQueryWrapper<TjPackageProject> wq1 = new LambdaQueryWrapper<>();
             wq1.eq(TjPackageProject::getProId, tjProject.getProId());
             List<TjPackageProject> list1 = ppservice.list(wq1);
-            if (null != list1 && list1.size() > 0) {
+            if (null != list1 && !list1.isEmpty()) {
                 return AjaxResult.error("璇ラ」鐩鍦ㄥ椁愪腑浣跨敤,鏆傛椂涓嶈兘鍋滅敤");
             }
+            if(tjProject.getProParentId() !=0){
+                LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+                wq.eq(TjProject::getProParentId, tjProject.getProParentId());
+                wq.eq(TjProject::getProStatus,0);
+                List<TjProject> list = tjProjectService.list(wq);
+                if (null != list && !list.isEmpty()) {
+                    int i = list.size();
+                    if(i<2) return AjaxResult.error("鑷冲皯淇濈暀涓�涓瓙椤圭洰,涓嶅彲鍏ㄩ儴鍋滅敤!!!");
+                }
+            }
         }
+        tjProject.setProEngName(PinyinUtil.getFirstLetter(tjProject.getProName(),""));
+        Date date=new Date();
         if (tjProject.getProParentId() == 0) {
             if (tjProjectService.updateById(tjProject)) {
-                if(dictProSfxmService.deletedProSfxm(tjProject.getProId())){
-                    if(null != tjProject.getSfxmId()){
-                        DictProSfxm proSfxm=new DictProSfxm();
+                    if(ytjproject.getProPrice().compareTo(tjProject.getProPrice())!=0){
+                        TjProjectXgjl xgjl=new TjProjectXgjl();
+                        BeanUtils.copyBeanProp(xgjl,ytjproject);
+                        xgjl.setCreateTime(date);
+                        xgjl.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
+                        xgjlService.save(xgjl);
+                    }
+                if (dictProSfxmService.deletedProSfxm(tjProject.getProId())) {
+                    if (null != tjProject.getSfxmId()) {
+                        DictProSfxm proSfxm = new DictProSfxm();
                         proSfxm.setSfxmId(tjProject.getSfxmId());
                         proSfxm.setProId(tjProject.getProId());
                         dictProSfxmService.save(proSfxm);
                     }
                 }
-                List<TjProject> list = tjProjectService.getTjProjectListBySoneId(String.valueOf(tjProject.getProId()));
-                if (null != list && list.size() > 0) {
+                LambdaQueryWrapper<TjProject> wqq = new LambdaQueryWrapper<>();
+                wqq.eq(TjProject::getProParentId,tjProject.getProId());
+                if(ytjproject.getProStatus()==0)
+                    wqq.eq(TjProject::getProStatus,0);
+                List<TjProject> list = tjProjectService.list(wqq);
+                if (null != list && !list.isEmpty()) {
                     for (TjProject project : list) {
                         project.setDeptId(tjProject.getDeptId());
                         project.setProType(tjProject.getProType());
@@ -302,9 +406,9 @@
                     }
                 }
                 List<TjConsumables> consumablesList = tjProject.getConsumablesList();
-                if (null != consumablesList && consumablesList.size() > 0) {
-                    LambdaQueryWrapper<TjProConsumables>wq=new LambdaQueryWrapper<>();
-                    wq.eq(TjProConsumables::getProId,tjProject.getProId());
+                if (null != consumablesList && !consumablesList.isEmpty()) {
+                    LambdaQueryWrapper<TjProConsumables> wq = new LambdaQueryWrapper<>();
+                    wq.eq(TjProConsumables::getProId, tjProject.getProId());
                     proConsumablesService.remove(wq);
                     for (TjConsumables tjConsumables : consumablesList) {
                         TjProConsumables proConsumables = new TjProConsumables();
@@ -318,47 +422,57 @@
             }
         }
         TjProject byId1 = tjProjectService.selectTjProjectByProId(tjProject.getProParentId());
-        if(null !=byId1 && !tjProject.getDeptId().equals(byId1.getDeptId())){
+        if (null != byId1 && !tjProject.getDeptId().equals(byId1.getDeptId())) {
             return AjaxResult.error("涓嶅彲鏇存敼鐖堕」鐩瀹�!");
         }
-        if(null !=byId1){
+        if (null != byId1) {
             tjProject.setIsSampling(byId1.getIsSampling());
         }
         if (tjProjectService.updateById(tjProject)) {
-            if(dictProSfxmService.deletedProSfxm(tjProject.getProId())){
-                if(null != tjProject.getSfxmId()){
-                    DictProSfxm proSfxm=new DictProSfxm();
+                if(ytjproject.getProPrice().compareTo(tjProject.getProPrice())!=0){
+                    TjProjectXgjl xgjl=new TjProjectXgjl();
+                    BeanUtils.copyBeanProp(xgjl,ytjproject);
+                    xgjl.setCreateTime(date);
+                    xgjl.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
+                    xgjlService.save(xgjl);
+                }
+
+            if (dictProSfxmService.deletedProSfxm(tjProject.getProId())) {
+                if (null != tjProject.getSfxmId()) {
+                    DictProSfxm proSfxm = new DictProSfxm();
                     proSfxm.setSfxmId(tjProject.getSfxmId());
                     proSfxm.setProId(tjProject.getProId());
                     dictProSfxmService.save(proSfxm);
                 }
             }
             List<TjStandard> tjStandardList = tjProject.getTjStandardList();
-            if(null !=tjStandardList && tjStandardList.size()>0){
+            if (null != tjStandardList && !tjStandardList.isEmpty()) {
                 for (TjStandard tjStandard : tjStandardList) {
-                    if(null ==tjStandard.getTjSex()){
+                    if (null == tjStandard.getTjSex()) {
                         tjStandard.setTjSex(null);
                     }
                     tjStandard.setProId(tjProject.getProId());
                     tjStandardService.saveOrUpdate(tjStandard);
                 }
             }
-            if(null ==tjProject.getProPrice()){
+            if (null == tjProject.getProPrice()) {
                 tjProject.setProPrice(BigDecimal.valueOf(0.00));
             }
             Long proParentId = tjProject.getProParentId();
-            if(null !=proParentId){
-                LambdaQueryWrapper<TjProject> wq=new LambdaQueryWrapper<>();
-                wq.eq(TjProject::getProParentId,proParentId);
-                List<TjProject> projectList = tjProjectService.list(wq);
-                if(null !=projectList && projectList.size()>0){
-                    BigDecimal bigDecimal=new BigDecimal("0.00");
+            if (null != proParentId) {
+//                LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+//                wq.eq(TjProject::getProParentId, proParentId);
+//                wq.eq(TjProject::getProStatus,0);
+//                List<TjProject> projectList = tjProjectService.list(wq);
+                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(proParentId));
+                if (null != projectList && !projectList.isEmpty()) {
+                    BigDecimal bigDecimal = new BigDecimal("0.00");
                     for (TjProject project : projectList) {
-                        bigDecimal=bigDecimal.add(project.getProPrice());
+                        bigDecimal = bigDecimal.add(project.getProPrice().multiply(new BigDecimal(project.getSl())));
                     }
-                    bigDecimal.add(tjProject.getProPrice());
+//                    bigDecimal.add(tjProject.getProPrice());
                     TjProject byId = tjProjectService.getById(proParentId);
-                    byId.setProPrice(bigDecimal.setScale(2,BigDecimal.ROUND_DOWN));
+                    byId.setProPrice(bigDecimal);
                     tjProjectService.updateById(byId);
                 }
             }
@@ -374,6 +488,7 @@
     @Log(title = "浣撴椤圭洰", businessType = BusinessType.DELETE)
     @DeleteMapping("/{proIds}")
     @ApiOperation(value = "鍒犻櫎浣撴椤圭洰(鍙垹闄ょ埗椤圭洰鍜屽瓙椤圭洰)")
+    @Transactional
     public AjaxResult remove(@PathVariable Long[] proIds) {
         if (null == proIds || proIds.length <= 0) {
             return AjaxResult.error("璇烽�夋嫨瑕佸垹闄ょ殑椤圭洰");
@@ -391,20 +506,23 @@
                     if (null != list1 && list1.size() > 0) {
                         return AjaxResult.error("璇ラ」鐩鍦ㄥ椁愪腑浣跨敤,鏆傛椂涓嶈兘鍒犻櫎");
                     }
-                   LambdaQueryWrapper<TjPackageProject> wq2 = new LambdaQueryWrapper<>();
-                   wq2.eq(TjPackageProject::getProId, proId);
+                    LambdaQueryWrapper<TjPackageProject> wq2 = new LambdaQueryWrapper<>();
+                    wq2.eq(TjPackageProject::getProId, proId);
 
                     LambdaQueryWrapper<TjProConsumables> wq3 = new LambdaQueryWrapper<>();
                     wq3.eq(TjProConsumables::getProId, proId);
-                   proConsumablesService.remove(wq3);
-                   ppservice.remove(wq2);
-                   tjProjectService.removeByIds(list.stream().map(TjProject::getProId).collect(Collectors.toList()));
-                   tjProjectService.removeById(project1.getProId());
+                    proConsumablesService.remove(wq3);
+                    ppservice.remove(wq2);
+                    tjProjectService.removeByIds(list.stream().map(TjProject::getProId).collect(Collectors.toList()));
+                    tjProjectService.removeById(project1.getProId());
                 } else {
                     LambdaQueryWrapper<TjStandard> wq = new LambdaQueryWrapper<>();
                     wq.eq(TjStandard::getProId, proId);
                     tjStandardService.remove(wq);
                     tjProjectService.removeById(project1.getProId());
+                    TjProject project = tjProjectService.getById(project1.getProParentId());
+                    project.setProPrice(tjProjectService.getMoneys(project1.getProParentId().toString()));
+                    tjProjectService.updateById(project);
                 }
             }
         }
@@ -446,21 +564,305 @@
     public AjaxResult getSonsList(@RequestParam(required = false) @ApiParam(value = "椤圭洰鍚嶇О") String proName) {
         LambdaQueryWrapper<TjProject> wq0 = new LambdaQueryWrapper<>();
         wq0.ne(TjProject::getProParentId, 0);
-        if(null !=proName){
-            wq0.like(TjProject::getProName,proName);
+        if (null != proName) {
+            wq0.like(TjProject::getProName, proName);
         }
         List<TjProject> tjProjects = tjProjectService.list(wq0);
 
         return AjaxResult.success(tjProjects);
     }
 
-//    /**
-//     * 鑾峰彇閮ㄩ棬鏍戝垪琛�
-//     */
-//    @GetMapping("/deptTree")
-//    @ApiOperation("鑾峰彇閮ㄩ棬鏍戝垪琛�")
-//    public AjaxResult deptTree(SysDept dept) {
-//        return success(deptService.selectDeptTreeList(dept));
+
+    /**
+     * 鑾峰彇浣撴椤圭洰璇︾粏淇℃伅
+     */
+    @GetMapping(value = "/getInfoByProId")
+    @ApiOperation(value = "鑾峰彇浣撴椤圭洰璇︾粏淇℃伅")
+    public AjaxResult getInfoByProId(@RequestParam Long proId) {
+        TjProject tjProject = tjProjectService.getById(proId);
+        return AjaxResult.success(tjProject);
+    }
+
+
+    /**
+     * 閫夋嫨浣撴椤圭洰閫夊崟椤规椂璋冪敤鐨勬帴鍙�
+     */
+    @GetMapping("/getProParentIdDxList")
+    @ApiOperation(value = "閫夋嫨浣撴椤圭洰(鎵�鏈夐〉闈㈤」鐩�)閫夊崟椤规椂璋冪敤鐨勬帴鍙�")
+    public AjaxResult getProParentIdDxList() {
+        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
+        String config = configService.selectConfigByKey("tj_dxsxtj");
+        if (null != config && config.equals("N")) {
+            tjProjects = tjProjectService.getOpenDxTjProjectList(null);
+        }
+        String key = configService.selectConfigByKey("is_open_sfxm");
+        Map<String, Object> map = new HashMap<>();
+
+        map.put("list", tjProjects);
+        map.put("key", key);
+        return AjaxResult.success(map);
+    }
+
+
+    @GetMapping("/getProParentIdDxListByFenYe")
+    @ApiOperation(value = "閫夋嫨浣撴椤圭洰(鎵�鏈夐〉闈㈤」鐩�)閫夊崟椤规椂璋冪敤鐨勬帴鍙�(鏈夊垎椤�)")
+    public AjaxResult getProParentIdDxListByFenYe(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "10") int pageSize,String nr) {
+        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
+        String config = configService.selectConfigByKey("tj_dxsxtj");
+        if (null != config && config.equals("N")) {
+            tjProjects = tjProjectService.getOpenDxTjProjectList(nr);
+        }
+        String key = configService.selectConfigByKey("is_open_sfxm");
+        Map<String, Object> map = new HashMap<>();
+
+        if(null !=tjProjects && !tjProjects.isEmpty()){
+            List<TjProject> collect = tjProjects.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+            map.put("total", tjProjects.size());
+            map.put("list", collect);
+        }else {
+            map.put("total",0);
+            map.put("list", tjProjects);
+        }
+        map.put("key", key);
+        return AjaxResult.success(map);
+    }
+
+
+    @GetMapping("/getProSonDxList")
+    @ApiOperation(value = "閫夋嫨浣撴椤圭洰(鏍规嵁鐖堕」id閫夋嫨瀛愰」)閫夊崟椤规椂璋冪敤鐨勬帴鍙�")
+    public AjaxResult getProSonDxList(@RequestParam String proId) {
+        List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(proId);
+        String key = configService.selectConfigByKey("is_open_sfxm");
+        Map<String, Object> map = new HashMap<>();
+        map.put("list", projectList);
+        map.put("key", key);
+        return AjaxResult.success(map);
+    }
+
+
+    @GetMapping("/plxgpym")
+    @ApiOperation(value = "鎵归噺淇敼鎷奸煶鐮�")
+    public AjaxResult plxgpym(@RequestParam String tbname,@RequestParam String zd,@RequestParam String pymzd) {
+        String sql="SELECT 1";
+        try {
+             sql="SELECT "+ zd +","+ pymzd +" FROM "+tbname;
+
+            List<Map<String,Object>> projectList =  tjProjectService.zdysqlcx(sql);
+            if(null !=projectList && !projectList.isEmpty()){
+                for (Map<String, Object> map : projectList) {
+                    Object zd1 = map.get(zd);
+                    if(null !=zd1 && StringUtil.isNotBlank(zd1.toString())){
+                        String letter = PinyinUtil.getFirstLetter(zd1.toString(), "");
+                        sql="UPDATE "+ tbname +" "+ " set " +pymzd+" = "+ "'" +letter+"'"+" where  "+zd+" = "+"'"+zd1+"'" ;
+                        tjProjectService.zdysqlxg(sql);
+                    }
+                }
+            }
+            return AjaxResult.success(projectList);
+        } catch (Exception e) {
+            log.info("sql鏌ヨ澶辫触"+ sql);
+            throw new RuntimeException(e);
+        }
+    }
+
+
+    @GetMapping("/getProListByBblx")
+    @ApiOperation(value = "鏌ヨ鏍囨湰瀵瑰簲椤圭洰鎴栨湭瀵瑰簲鏍囨湰鐨勯」鐩�")
+    public AjaxResult getProListByBblx(@ApiParam(value = "鏍囨湰绫诲瀷")@RequestParam(required = false) String bblx) {
+        try {
+            List<TjProject> projectList =tjProjectService.getProListByBblx(bblx);
+            return AjaxResult.success(projectList);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @GetMapping("/delProByBblx")
+    @ApiOperation(value = "鍒犻櫎椤圭洰瀵瑰簲鏍囨湰")
+    @Transactional
+    public AjaxResult delProByBblx(@ApiParam(value = "椤圭洰ID")@RequestParam(required = false) String proId) {
+        try {
+            TjProject tjProject = tjProjectService.getById(proId);
+            tjProject.setSpecimenType(null);
+            tjProjectService.updateById(tjProject);
+            return AjaxResult.success();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+    @PostMapping("/updateProByBblx")
+    @ApiOperation(value = "淇敼鎵�閫夐」鐩殑鏍囨湰绫诲瀷")
+    @Transactional
+    public AjaxResult updateProByBblx(@ApiParam(value = "椤圭洰ID闆嗗悎")@RequestParam(required = false) List<String> proIds,
+                                      @ApiParam(value = "鏍囨湰绫诲瀷")@RequestParam(required = false)String bblx) {
+        try {
+            if(null !=  proIds && !proIds.isEmpty()){
+                for (String proId : proIds) {
+                    TjProject tjProject = tjProjectService.getById(proId);
+                    tjProject.setSpecimenType(bblx);
+                    tjProjectService.updateById(tjProject);
+                }
+            }
+            return AjaxResult.success();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+
+
+
+
+    @GetMapping("/getProListByBwwh")
+    @ApiOperation(value = "鏌ヨ閮ㄤ綅瀵瑰簲椤圭洰鎴栨湭瀵瑰簲閮ㄤ綅鐨勯」鐩�")
+    public AjaxResult getProListByBwwh(@ApiParam(value = "鏍囨湰绫诲瀷")@RequestParam(required = false) String bw) {
+        try {
+            List<TjProject> projectList =tjProjectService.getProListByBwwh(bw);
+            return AjaxResult.success(projectList);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @GetMapping("/delProByBbwwh")
+    @ApiOperation(value = "鍒犻櫎椤圭洰瀵瑰簲閮ㄤ綅")
+    @Transactional
+    public AjaxResult delProByBbwwh(@ApiParam(value = "椤圭洰ID")@RequestParam(required = false) String proId) {
+        try {
+            TjProject tjProject = tjProjectService.getById(proId);
+            tjProject.setCheckBw(null);
+            tjProjectService.updateById(tjProject);
+            return AjaxResult.success();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @PostMapping("/updateProByBwwh")
+    @ApiOperation(value = "淇敼鎵�閫夐」鐩殑閮ㄤ綅")
+    @Transactional
+    public AjaxResult updateProByBwwh(@ApiParam(value = "椤圭洰ID闆嗗悎")@RequestParam(required = false) List<String> proIds,
+                                      @ApiParam(value = "鏍囨湰绫诲瀷")@RequestParam(required = false)String bw) {
+        try {
+            if(null !=  proIds && !proIds.isEmpty()){
+                for (String proId : proIds) {
+                    TjProject tjProject = tjProjectService.getById(proId);
+                    tjProject.setCheckBw(bw);
+                    tjProjectService.updateById(tjProject);
+                }
+            }
+            return AjaxResult.success();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+//    @PostMapping("/addOrupdateProByBz")
+//    @ApiOperation(value = "鏂板鎴栦慨鏀规墍閫夐」鐩殑瀵瑰簲鐥呯淇℃伅")
+//    @Transactional
+//    public AjaxResult addOrupdateProByBz(@ApiParam(value = "椤圭洰ID闆嗗悎")@RequestParam(required = false) List<String> proIds,
+//                                         @ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz) {
+//        try {
+//            if(null !=  proIds && !proIds.isEmpty()){
+//                bzProService.remove(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId,bz));
+//                for (String proId : proIds) {
+//                    TjBzPro bzPro=new TjBzPro();
+//                    bzPro.setBzId(Long.valueOf(bz));
+//                    bzPro.setProId(Long.valueOf(proId));
+//                    bzProService.save(bzPro);
+//                }
+//            }
+//            return AjaxResult.success();
+//        } catch (Exception e) {
+//            throw new RuntimeException(e);
+//        }
 //    }
+//
+//
+//    @GetMapping("/getProByBz")
+//    @ApiOperation(value = "鏌ヨ鐥呯瀵瑰簲椤圭洰")
+//    public AjaxResult getProByBz(@ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz) {
+//        try {
+//            List<TjBzPro> list = bzProService.list(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId, bz));
+//            return AjaxResult.success(list);
+//        } catch (Exception e) {
+//            throw new RuntimeException(e);
+//        }
+//    }
+//
+//
+//    @DeleteMapping("/delProByBz")
+//    @ApiOperation(value = "鍒犻櫎鐥呯瀵瑰簲椤圭洰")
+//    public AjaxResult delProByBz(@ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz,
+//                                 @ApiParam(value = "椤圭洰ID")@RequestParam(required = false)String proId) {
+//        try {
+//            bzProService.remove(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId,bz).eq(TjBzPro::getProId,proId));
+//            return AjaxResult.success();
+//        } catch (Exception e) {
+//            throw new RuntimeException(e);
+//        }
+//    }
+
+
+
+    @PostMapping("/addOrupdateProByBz")
+    @ApiOperation(value = "鏂板鎴栦慨鏀规墍閫夐」鐩殑瀵瑰簲鐥呯淇℃伅")
+    @Transactional
+    public AjaxResult addOrupdateProByBz(@ApiParam(value = "椤圭洰ID闆嗗悎")@RequestParam(required = false) List<String> proIds,
+                                         @ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz) {
+        try {
+            if(null !=  proIds && !proIds.isEmpty()){
+                bzProService.remove(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId,bz));
+                for (String proId : proIds) {
+                    TjBzPro bzPro=new TjBzPro();
+                    bzPro.setBzId(Long.valueOf(bz));
+                    bzPro.setProId(Long.valueOf(proId));
+                    bzProService.save(bzPro);
+                }
+            }
+            return AjaxResult.success();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @GetMapping("/getProByBz")
+    @ApiOperation(value = "鏌ヨ鐥呯瀵瑰簲椤圭洰")
+    public AjaxResult getProByBz(@ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz) {
+        try {
+            LambdaQueryWrapper<TjBzPro> tjBzProLambdaQueryWrapper = new LambdaQueryWrapper<>(TjBzPro.class);
+            if(StringUtil.isNotBlank(bz)){
+                tjBzProLambdaQueryWrapper.eq(TjBzPro::getBzId, bz);
+                List<TjBzPro> list = bzProService.list(tjBzProLambdaQueryWrapper);
+                for (TjBzPro bzPro : list) {
+                    TjProject tjProject = tjProjectService.getById(bzPro.getProId());
+                    if(null != tjProject)bzPro.setProName(tjProject.getProName());
+                }
+                return AjaxResult.success(list);
+            }else {
+                List<TjProject> list = tjProjectService.selectTjProjectListByBz();
+                return AjaxResult.success(list);
+            }
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @DeleteMapping("/delProByBz")
+    @ApiOperation(value = "鍒犻櫎鐥呯瀵瑰簲椤圭洰")
+    public AjaxResult delProByBz(@ApiParam(value = "鐥呯ID")@RequestParam(required = false)String bz,
+                                 @ApiParam(value = "椤圭洰ID")@RequestParam(required = false)String proId) {
+        try {
+            bzProService.remove(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId,bz).eq(TjBzPro::getProId,proId));
+            return AjaxResult.success();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
 
 }

--
Gitblit v1.8.0