Ver Fonte

Merge branch 'feature-wcz' of lift-manager/lift-server into develop

wucizhong há 5 anos atrás
pai
commit
9dfe29fa7d

+ 74 - 73
lift-business-service/src/main/java/cn/com/ty/lift/business/annualinspection/controller/AnnualInspectionController.java

@@ -27,8 +27,9 @@ import java.time.LocalDateTime;
 
 /**
  * <p>
- *     年检记录 前端控制器
+ * 年检记录 前端控制器
  * </p>
+ *
  * @author wcz
  * @since 2019-12-10
  */
@@ -49,7 +50,7 @@ public class AnnualInspectionController {
      */
     @PostMapping("findOne")
     @Judger(fields = {"id"})
-    public RestResponse findOne(@RequestBody InspectionRequest request){
+    public RestResponse findOne(@RequestBody InspectionRequest request) {
         InspectionResponse entity = annualInspectionService.selectByIdWithInfo(request);
         return RestResponse.success(entity);
     }
@@ -61,7 +62,7 @@ public class AnnualInspectionController {
      */
     @PostMapping("page")
     @Judger(fields = "mtCompanyId")
-    public RestResponse page(@RequestBody InspectionRequest request){
+    public RestResponse page(@RequestBody InspectionRequest request) {
         IPage<InspectionResponse> pages = annualInspectionService.pageByCondition(request);
         long count = annualInspectionService.countByCondition(request);
         CountPage<InspectionResponse> countPage = new CountPage<>(count, pages);
@@ -75,39 +76,38 @@ public class AnnualInspectionController {
      */
     @PostMapping("pageWorker")
     @Judger(fields = {"workerId"})
-    public RestResponse pageWorker(@RequestBody InspectionRequest request){
+    public RestResponse pageWorker(@RequestBody InspectionRequest request) {
         IPage<InspectionResponse> pages = annualInspectionService.pageByCondition(request);
         return RestResponse.success(pages);
     }
+
     /**
      * 修改年检信息
-     *
+     * <p>
      * status 状态(0 待完成;1 已完成;2 超期)
-     *
      * stepStatus  :年检阶段状态
-     *
      * 未开始0,第一阶段 1-2,第二阶段 3,第三阶段 4-7,第四阶段 8-10
-     *
-        1  维保工确认年检计划
-        2  维保工上传自检报告,选择自检时间 或者 文员设置 是否检查限速器和荷载年检设置,
-            文员也可以上传自检报告或者确认自检报告和自检时间,自检时间以最后设置的为准
-        --------------------------------
-        3  企业文员确认现场检验时间
-            录入人员信息,政府质检,企业质检,联系电话
-        --------------------------------
-        4	维保工上传检验结果
-        5	企业文员确认检验结果-合格 --> 不能算年检超期
-        6	企业文员确认检验结果-整改 --> 回到第二阶段
-        7	企业文员确认检验结果-不合格 --> 可以算年检超期
-        --------------------------------
-        8	维保工上传年检报告和合格证
-        9	企业文员确认年检报告和合格证-合格
-        10	企业文员确认年检报告和合格证-不合格 -->停用电梯
+     * <p>
+     * 1  维保工确认年检计划
+     * 2  维保工上传自检报告,选择自检时间 或者 文员设置 是否检查限速器和荷载年检设置,
+     * 文员也可以上传自检报告或者确认自检报告和自检时间,自检时间以最后设置的为准
+     * --------------------------------
+     * 3  企业文员确认现场检验时间
+     * 录入人员信息,政府质检,企业质检,联系电话
+     * --------------------------------
+     * 4	维保工上传检验结果
+     * 5	企业文员确认检验结果-合格 --> 不能算年检超期
+     * 6	企业文员确认检验结果-整改 --> 回到第二阶段
+     * 7	企业文员确认检验结果-不合格 --> 可以算年检超期
+     * --------------------------------
+     * 8	维保工上传年检报告和合格证
+     * 9	企业文员确认年检报告和合格证-合格
+     * 10	企业文员确认年检报告和合格证-不合格 -->停用电梯
      * @param entity AnnualInspection
      * @return RestResponse
      */
     @PostMapping("modify")
-    public RestResponse modify(@Valid @RequestBody AnnualInspection entity){
+    public RestResponse modify(@Valid @RequestBody AnnualInspection entity) {
         Long id = entity.getId();
         Judge.id(id);
         AnnualInspection old = annualInspectionService.getById(id);
@@ -118,63 +118,63 @@ public class AnnualInspectionController {
         Integer stepStatus = entity.getStepStatus();
 
         //0 --> 1 维保工确认年检计划
-        Judge.notTrue(Judge.Inspection.statusNotStart(oldStepStatus) && !Judge.Inspection.sameNext(oldStepStatus,stepStatus),Judge.Inspection.confirm);
+        Judge.notTrue(Judge.Inspection.statusNotStart(oldStepStatus) && !Judge.Inspection.sameNext(oldStepStatus, stepStatus), Judge.Inspection.confirm);
         //1 --> 2
-        Judge.notTrue(Judge.Inspection.statusConfirm(oldStepStatus) && !Judge.Inspection.nextStatus(oldStepStatus,stepStatus),Judge.Inspection.selfcheckUpload);
+        Judge.notTrue(Judge.Inspection.statusConfirm(oldStepStatus) && !Judge.Inspection.nextStatus(oldStepStatus, stepStatus), Judge.Inspection.selfcheckUpload);
         /**
          * 2  维保工上传自检报告,选择自检时间 或者 文员设置 是否检查限速器和荷载年检设置,
          *             文员也可以上传自检报告或者确认自检报告和自检时间,自检时间以最后设置的为准
          */
-        if(Judge.Inspection.statusSelfcheck(oldStepStatus)){
+        if (Judge.Inspection.statusSelfcheck(oldStepStatus)) {
             // 修改自检信息
-            if(Judge.Inspection.sameStatus(oldStepStatus,stepStatus)){
-                Judge.notNull(entity.getSelfcheckReportImg(),Judge.Inspection.selfcheckReportImg);
-                Judge.notNull(entity.getSelfcheckDate(),Judge.Inspection.selfcheckDate);
+            if (Judge.Inspection.sameStatus(oldStepStatus, stepStatus)) {
+                Judge.notNull(entity.getSelfcheckReportImg(), Judge.Inspection.selfcheckReportImg);
+                Judge.notNull(entity.getSelfcheckDate(), Judge.Inspection.selfcheckDate);
                 //流转到下一个状态 2 --> 3
-            }else if(Judge.Inspection.statusCheckConfirm(stepStatus)){
+            } else if (Judge.Inspection.statusCheckConfirm(stepStatus)) {
                 //3  企业文员确认现场检验时间,录入人员信息,政府质检,企业质检,联系电话
-                Judge.notNull(entity.getCheckDate(),Judge.Inspection.checkDate);
-                Judge.notNull(entity.getCheckResultImg(),Judge.Inspection.checkResultImg);
-                Judge.notNull(entity.getInspector(),Judge.Inspection.inspector);
-                Judge.notNull(entity.getOperator(),Judge.Inspection.operator);
-                Judge.notNull(entity.getTelephone(),Judge.Inspection.telephone);
-            }else {
+                Judge.notNull(entity.getCheckDate(), Judge.Inspection.checkDate);
+                Judge.notNull(entity.getCheckResultImg(), Judge.Inspection.checkResultImg);
+                Judge.notNull(entity.getInspector(), Judge.Inspection.inspector);
+                Judge.notNull(entity.getOperator(), Judge.Inspection.operator);
+                Judge.notNull(entity.getTelephone(), Judge.Inspection.telephone);
+            } else {
                 return RestResponse.fail(Judge.Inspection.checkConfirm);
             }
         }
         // 3 --> 4  维保工上传检验结果
-        Judge.notTrue(Judge.Inspection.statusCheckConfirm(oldStepStatus) && !Judge.Inspection.nextStatus(oldStepStatus,stepStatus),Judge.Inspection.checkConfirm);
+        Judge.notTrue(Judge.Inspection.statusCheckConfirm(oldStepStatus) && !Judge.Inspection.nextStatus(oldStepStatus, stepStatus), Judge.Inspection.checkConfirm);
         //4 检查上传检验结果
-        if(Judge.Inspection.statusCheckUpload(oldStepStatus)){
+        if (Judge.Inspection.statusCheckUpload(oldStepStatus)) {
             //修改检验结果
-            if(Judge.Inspection.sameStatus(oldStepStatus,stepStatus)){
-                Judge.notNull(entity.getCheckResultImg(),Judge.Inspection.checkResultImg);
-                Judge.notNull(entity.getCheckDate(),Judge.Inspection.checkDate);
+            if (Judge.Inspection.sameStatus(oldStepStatus, stepStatus)) {
+                Judge.notNull(entity.getCheckResultImg(), Judge.Inspection.checkResultImg);
+                Judge.notNull(entity.getCheckDate(), Judge.Inspection.checkDate);
                 //流转到下一个状态
-            }else{
-            /**
-             *  5	企业文员确认检验结果-合格
-             *  6	企业文员确认检验结果-整改
-             *  7	企业文员确认检验结果-不合格
-             */
-                Judge.notTrue(!Judge.Inspection.inStatus(Judge.Inspection.STATUS_CHECK_QUALIFIED,stepStatus,Judge.Inspection.STATUS_CHECK_UNQUALIFIED),Judge.Inspection.checkConfirm);
+            } else {
+                /**
+                 *  5	企业文员确认检验结果-合格
+                 *  6	企业文员确认检验结果-整改
+                 *  7	企业文员确认检验结果-不合格
+                 */
+                Judge.notTrue(!Judge.Inspection.inStatus(Judge.Inspection.STATUS_CHECK_QUALIFIED, stepStatus, Judge.Inspection.STATUS_CHECK_UNQUALIFIED), Judge.Inspection.checkConfirm);
             }
         }
         /**
          * 6 检验结果整改,回到阶段2
          * (3  企业文员确认现场检验时间 录入人员信息,政府质检,企业质检,联系电话)
          */
-        if(Judge.Inspection.statusCheckRectification(stepStatus)){
+        if (Judge.Inspection.statusCheckRectification(stepStatus)) {
             entity.setStepStatus(Judge.Inspection.STATUS_CHECK_CONFIRM);
         }
         /**
          * 5	企业文员确认检验结果-合格 --> 8	维保工上传年检报告和合格证
          * 7	企业文员确认检验结果-不合格-->8	维保工上传年检报告和合格证
          */
-        if(Judge.Inspection.statusCheckQualified(oldStepStatus) || Judge.Inspection.statusCheckUnqualified(oldStepStatus)){
-            if(Judge.Inspection.statusCertificateReportUpload(stepStatus)){
-                Judge.notTrue(StrUtil.hasEmpty(entity.getCertificateImgUrl(),entity.getAnnualInspectionImg()),Judge.Inspection.certificateReportUpload);
-            }else {
+        if (Judge.Inspection.statusCheckQualified(oldStepStatus) || Judge.Inspection.statusCheckUnqualified(oldStepStatus)) {
+            if (Judge.Inspection.statusCertificateReportUpload(stepStatus)) {
+                Judge.notTrue(StrUtil.hasEmpty(entity.getCertificateImgUrl(), entity.getAnnualInspectionImg()), Judge.Inspection.certificateReportUpload);
+            } else {
                 return RestResponse.fail(Judge.Inspection.statusError);
             }
         }
@@ -182,27 +182,27 @@ public class AnnualInspectionController {
          * 8	维保工上传年检报告和合格证--> 9  企业文员确认年检报告和合格证 -合格
          * 8	维保工上传年检报告和合格证--> 10  企业文员确认年检报告和合格证 -不合格
          */
-        if(Judge.Inspection.statusCertificateReportUpload(oldStepStatus)){
+        if (Judge.Inspection.statusCertificateReportUpload(oldStepStatus)) {
             //修改年检报告和合格证
-            if(Judge.Inspection.sameStatus(oldStepStatus,stepStatus)){
-                Judge.notTrue(StrUtil.hasEmpty(entity.getCertificateImgUrl(),entity.getAnnualInspectionImg()),Judge.Inspection.certificateReportUpload);
-            }else if(Judge.Inspection.statusCertificateReportQualified(stepStatus)){
+            if (Judge.Inspection.sameStatus(oldStepStatus, stepStatus)) {
+                Judge.notTrue(StrUtil.hasEmpty(entity.getCertificateImgUrl(), entity.getAnnualInspectionImg()), Judge.Inspection.certificateReportUpload);
+            } else if (Judge.Inspection.statusCertificateReportQualified(stepStatus)) {
                 //合格:文员确认年检报告并设置下次年检时间
-                Judge.notNull(entity.getNextInspectionTime(),Judge.Inspection.nextInspectionTime);
+                Judge.notNull(entity.getNextInspectionTime(), Judge.Inspection.nextInspectionTime);
                 // 设置年检完成 status = 1
                 entity.setFinishTime(LocalDateTime.now());
                 entity.setStatus(1);
-            }else if(Judge.Inspection.statusCertificateReportUnqualified(stepStatus)){
+            } else if (Judge.Inspection.statusCertificateReportUnqualified(stepStatus)) {
                 // 设置年检完成 status = 1
                 entity.setFinishTime(LocalDateTime.now());
                 entity.setStatus(1);
-            }else{
+            } else {
                 return RestResponse.fail(Judge.Inspection.statusError);
             }
         }
 
         int stepName = Judge.Inspection.status2StepName(entity.getStepStatus());
-        Judge.notTrue(stepName == -1,Judge.Inspection.statusError);
+        Judge.notTrue(stepName == -1, Judge.Inspection.statusError);
         entity.setStepName(stepName);
 
         boolean result = annualInspectionService.modify(entity);
@@ -211,15 +211,16 @@ public class AnnualInspectionController {
 
     @GetMapping("show")
     public BufferedImage show(@RequestParam("filename") String filename) throws IOException {
-        if(StrUtil.isEmpty(filename)){
+        if (StrUtil.isEmpty(filename)) {
             return null;
         }
-        String fileurl = aliyunOSS.getObjectUrl(systemConfiguration.getBucketName(),filename);
+        String fileurl = aliyunOSS.getObjectUrl(systemConfiguration.getBucketName(), filename);
         log.info("fileurl: " + fileurl);
         File file = new File("download/" + filename);
-        File down = aliyunOSS.getFile(systemConfiguration.getBucketName(),filename,file);
+        File down = aliyunOSS.getFile(systemConfiguration.getBucketName(), filename, file);
         return null == down ? null : ImageIO.read(new FileInputStream(file));
     }
+
     /**
      * 其他角色获取自己关联的项目的年检任务
      * @param request InspectionRequest
@@ -227,7 +228,7 @@ public class AnnualInspectionController {
      */
     @PostMapping("pageByUser")
     @Judger(fields = {"userId"})
-    public RestResponse pageByUser(@RequestBody InspectionRequest request){
+    public RestResponse pageByUser(@RequestBody InspectionRequest request) {
         IPage<InspectionResponse> pages = annualInspectionService.pageByUser(request);
         return RestResponse.success(pages);
     }
@@ -239,7 +240,7 @@ public class AnnualInspectionController {
      */
     @PostMapping("confirm")
     @Judger(fields = {"id"})
-    public RestResponse confirm(@RequestBody InspectionRequest request){
+    public RestResponse confirm(@RequestBody InspectionRequest request) {
         AnnualInspection entity = annualInspectionService.getById(request.getId());
         Judge.notNull(entity);
         entity.setStepStatus(Judge.Inspection.STATUS_CONFIRM);
@@ -254,8 +255,8 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("selfcheck")
-    @Judger(fields = {"id","selfcheckDate","selfcheckReportImg"})
-    public RestResponse selfcheck(@RequestBody InspectionRequest request){
+    @Judger(fields = {"id", "selfcheckDate", "selfcheckReportImg"})
+    public RestResponse selfcheck(@RequestBody InspectionRequest request) {
         AnnualInspection entity = annualInspectionService.getById(request.getId());
         Judge.notNull(entity);
 
@@ -274,8 +275,8 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("check")
-    @Judger(fields = {"id","checkDate","checkResultImg"})
-    public RestResponse check(@RequestBody InspectionRequest request){
+    @Judger(fields = {"id", "checkDate", "checkResultImg"})
+    public RestResponse check(@RequestBody InspectionRequest request) {
         AnnualInspection entity = annualInspectionService.getById(request.getId());
         Judge.notNull(entity);
 
@@ -294,8 +295,8 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("finish")
-    @Judger(fields = {"id","certificateImgUrl","annualInspectionImg"})
-    public RestResponse finish(@RequestBody InspectionRequest request){
+    @Judger(fields = {"id", "certificateImgUrl", "annualInspectionImg"})
+    public RestResponse finish(@RequestBody InspectionRequest request) {
         AnnualInspection entity = annualInspectionService.getById(request.getId());
         Judge.notNull(entity);
 

+ 4 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/emergency/service/impl/EmergencyRepairService.java

@@ -7,6 +7,8 @@ import cn.com.ty.lift.business.emergency.entity.ErRecordCost;
 import cn.com.ty.lift.business.emergency.entity.ErRecordImg;
 import cn.com.ty.lift.business.emergency.mapper.EmergencyRepairMapper;
 import cn.com.ty.lift.business.emergency.service.IEmergencyRepairService;
+import cn.com.ty.lift.business.emergency.service.IErRecordCostService;
+import cn.com.ty.lift.business.emergency.service.IErRecordImgService;
 import cn.com.ty.lift.business.evaluation.dao.entity.Evaluation;
 import cn.com.ty.lift.business.evaluation.service.EvaluationService;
 import cn.com.ty.lift.business.library.dao.entity.PlatformCompanyLiftRelevance;
@@ -39,8 +41,8 @@ import java.util.List;
 public class EmergencyRepairService extends ServiceImpl<EmergencyRepairMapper, EmergencyRepair> implements IEmergencyRepairService {
 
     private PlatformCompanyLiftRelevanceService platformCompanyLiftRelevanceService;
-    private ErRecordImgService                  erRecordImgService;
-    private ErRecordCostService                 erRecordCostService;
+    private IErRecordImgService                 erRecordImgService;
+    private IErRecordCostService                erRecordCostService;
     private EvaluationService                   evaluationService;
 
     /**

+ 22 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/controller/MaintenanceRecordController.java

@@ -4,6 +4,7 @@ import cn.com.ty.lift.business.evaluation.dao.entity.Evaluation;
 import cn.com.ty.lift.business.evaluation.service.EvaluationService;
 import cn.com.ty.lift.business.maintenance.dao.entity.MaintenanceOption;
 import cn.com.ty.lift.business.maintenance.dao.entity.MaintenanceRecord;
+import cn.com.ty.lift.business.maintenance.dao.entity.MtRecordCost;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MtPlanRequest;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MtRecordRequest;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MtOptionTree;
@@ -147,6 +148,16 @@ public class MaintenanceRecordController {
         Long id = request.getId();
         //查询费用项
         entity.setMtRecordCosts(mtRecordCostService.listByRecord(id));
+        //总计 partsCost, manCost, 拼接sparepart
+//        List<MtRecordCost> mtRecordCosts = entity.getMtRecordCosts();
+//        if(IterUtil.isNotEmpty(mtRecordCosts)){
+//            BigDecimal partsCost = mtRecordCosts.stream().map(MtRecordCost::getPartsCost).reduce(BigDecimal.ZERO, (m1, m2) -> m1.add(m2));
+//            BigDecimal manCost = mtRecordCosts.stream().map(MtRecordCost::getManCost).reduce(BigDecimal.ZERO, (m1, m2) -> m1.add(m2));
+//            String sparepart = mtRecordCosts.stream().map(MtRecordCost::getSparepart).collect(Collectors.joining(";"));
+//            entity.setPartsCost(partsCost);
+//            entity.setManCost(manCost);
+//            entity.setSparepart(sparepart);
+//        }
         //查询图片
         entity.setMtRecordImgs(mtRecordImgService.listByRecord(id));
         //评价
@@ -297,7 +308,17 @@ public class MaintenanceRecordController {
     @PostMapping("deleteCost")
     @Judger(fields = {"id","mtRecordCostId"})
     public RestResponse deleteCost(@RequestBody MtRecordRequest request){
-        boolean result = mtRecordCostService.removeByRecordAndId(request.getId(),request.getMtRecordCostId());
+        Long id = request.getId();
+        Long mtRecordCostId = request.getMtRecordCostId();
+        MtRecordCost mtRecordCost = mtRecordCostService.getById(mtRecordCostId);
+        if(null == mtRecordCost){
+            return RestResponse.success(true);
+        }
+        MaintenanceRecord record = maintenanceRecordService.getById(id);
+        Judge.notNull(record);
+
+        boolean result = maintenanceRecordService.deleteCost(record,mtRecordCost);
+
         return RestResponse.success(result);
     }
 

+ 10 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/dao/entity/MaintenancePlan.java

@@ -1,13 +1,13 @@
 package cn.com.ty.lift.business.maintenance.dao.entity;
 
-import java.time.LocalDate;
-
 import cn.com.ty.lift.business.common.BaseEntity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.time.LocalDate;
+
 /**
  * 实体类 - 表:maintenance_plan
  * @author bieao
@@ -72,4 +72,12 @@ public class MaintenancePlan extends BaseEntity {
      * 是否按需维保(0:否 1:是)
      */
     private String demand;
+    /**
+     * 关联维保记录的状态
+     * 0:没有维保记录(可以补录)
+     * 1:已补录工单,(可以继续填写)
+     * 2:待审核(通过app端添加的),通过后台添加的,直接 ->3
+     * 3:审核通过或者后台直接添加
+     */
+//    private Integer recordStatus;
 }

+ 36 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/MaintenanceRecordService.java

@@ -22,6 +22,7 @@ import cn.com.ty.lift.common.utils.MapHelper;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.core.collection.IterUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -37,6 +38,7 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * @author bieao
@@ -200,13 +202,15 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
      */
     @Transactional(rollbackFor = Exception.class)
     public boolean tofill(MaintenanceRecord entity){
-        //总计 partsCost, manCost
+        //总计 partsCost, manCost, 拼接sparepart
         List<MtRecordCost> mtRecordCosts = entity.getMtRecordCosts();
         if(IterUtil.isNotEmpty(mtRecordCosts)){
             BigDecimal partsCost = mtRecordCosts.stream().map(MtRecordCost::getPartsCost).reduce(BigDecimal.ZERO, (m1, m2) -> m1.add(m2));
             BigDecimal manCost = mtRecordCosts.stream().map(MtRecordCost::getManCost).reduce(BigDecimal.ZERO, (m1, m2) -> m1.add(m2));
+            String sparepart = mtRecordCosts.stream().map(MtRecordCost::getSparepart).collect(Collectors.joining(";"));
             entity.setPartsCost(partsCost);
             entity.setManCost(manCost);
+            entity.setSparepart(sparepart);
         }
         boolean mr = saveOrUpdate(entity);
         if(!mr){
@@ -305,4 +309,35 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
             return false;
         }
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public boolean deleteCost(MaintenanceRecord record, MtRecordCost mtRecordCost) {
+        if (null == mtRecordCost) {
+            return true;
+        }
+        BigDecimal partsCost = mtRecordCost.getPartsCost();
+        BigDecimal manCost = mtRecordCost.getManCost();
+        String sparepart = mtRecordCost.getSparepart();
+        if (partsCost.compareTo(BigDecimal.ZERO) > 0) {
+            record.setPartsCost(record.getPartsCost().subtract(partsCost));
+        }
+        if (manCost.compareTo(BigDecimal.ZERO) > 0) {
+            record.setManCost(record.getManCost().subtract(manCost));
+        }
+        if (StrUtil.isNotEmpty(sparepart)) {
+            record.setSparepart(record.getSparepart().replace(sparepart + ";", ""));
+        }
+        boolean cost = mtRecordCostService.removeById(mtRecordCost.getId());
+        if (!cost) {
+            return false;
+        }
+        boolean re = updateById(record);
+        if (re) {
+            return true;
+        } else {
+            //强制手动事务回滚
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return false;
+        }
+    }
 }

+ 34 - 0
lift-push/pom.xml

@@ -31,11 +31,45 @@
             <artifactId>hutool-all</artifactId>
             <version>5.0.6</version>
         </dependency>
+        <!--从私有仓库加载依赖-->
         <dependency>
             <groupId>com.tencent</groupId>
             <artifactId>xinge-push</artifactId>
             <version>1.2.0</version>
         </dependency>
+        <!--从本地lib中加载依赖-->
+        <!--<dependency>-->
+            <!--<groupId>com.tencent</groupId>-->
+            <!--<artifactId>xinge</artifactId>-->
+            <!--<version>1.2.0</version>-->
+            <!--<scope>system</scope>-->
+            <!--<systemPath>${project.basedir}/src/main/resources/lib/xinge-1.2.0-SNAPSHOT.jar</systemPath>-->
+        <!--</dependency>-->
     </dependencies>
 
+    <!--如果从本地加载jar依赖,必须指定以下配置-->
+    <!--<build>-->
+        <!--<plugins>-->
+            <!--<plugin>-->
+                <!--<groupId>org.apache.maven.plugins</groupId>-->
+                <!--<artifactId>maven-compiler-plugin</artifactId>-->
+            <!--</plugin>-->
+            <!--<plugin>-->
+                <!--<groupId>org.springframework.boot</groupId>-->
+                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
+                <!--<configuration>-->
+                    <!--<executable>true</executable>-->
+                    <!--<includeSystemScope>true</includeSystemScope>-->
+                <!--</configuration>-->
+                <!--<executions>-->
+                    <!--<execution>-->
+                        <!--<goals>-->
+                            <!--<goal>repackage</goal>-->
+                        <!--</goals>-->
+                    <!--</execution>-->
+                <!--</executions>-->
+            <!--</plugin>-->
+        <!--</plugins>-->
+    <!--</build>-->
+
 </project>

BIN
lift-push/src/main/resources/lib/xinge-1.2.0-SNAPSHOT-jar-with-dependencies.jar


BIN
lift-push/src/main/resources/lib/xinge-1.2.0-SNAPSHOT.jar


+ 6 - 6
lift-system-service/src/main/java/cn/com/ty/lift/system/framework/aspect/GlobalDefaultExceptionHandler.java

@@ -25,12 +25,12 @@ import java.util.stream.Stream;
 public class GlobalDefaultExceptionHandler {
 
     private static final String classPrefix = "cn.com.ty.lift.system";
-    private static final String nameSuffix = ".java";
-    private static final String line = "========================= GlobalDefaultException =========================";
-    private static final String head = "#####| ";
-    private static final String url = head + "URL          : {}";
-    private static final String status = head + "STATUS       : {}";
-    private static final String exception = head + "EXCEPTION    : ";
+    private static final String nameSuffix  = ".java";
+    private static final String line        = "========================= GlobalDefaultException =========================";
+    private static final String head        = "#####| ";
+    private static final String url         = head + "URL          : {}";
+    private static final String status      = head + "STATUS       : {}";
+    private static final String exception   = head + "EXCEPTION    : ";
 
     @ExceptionHandler(value = ExceptionInInitializerError.class)
     @ResponseStatus(value = HttpStatus.BAD_REQUEST)