瀏覽代碼

更新资产订单成员和签字估价师

wucl 5 月之前
父節點
當前提交
bc42c346fc

+ 7 - 0
biz-base/src/main/java/com/dayou/controller/DyoaController.java

@@ -124,4 +124,11 @@ public class DyoaController {
         Boolean ret = dyoaHistoryService.updateMajorSubClientId();
         return RestResponse.data(ret);
     }
+
+    @IgnoreAuth
+    @GetMapping("/update/assetsMembers")
+    public RestResponse<Boolean> updateAssetsMembers(){
+        Boolean ret = dyoaHistoryService.updateAssetsMembers();
+        return RestResponse.data(ret);
+    }
 }

+ 1 - 0
dao/src/main/java/com/dayou/mapper/AssetsProductionMapper.java

@@ -136,4 +136,5 @@ public interface AssetsProductionMapper extends CustomBaseMapper<AssetsProductio
      */
     Boolean prodSaveFile(@Param("saveFileDate") Date saveFileDate, @Param("productionNo") String productionNo);
 
+    List<Long> getReportByAssetsId(@Param("businessId") Long businessId);
 }

+ 1 - 1
dao/src/main/java/com/dayou/mapper/DyoaHistoryMapper.java

@@ -60,5 +60,5 @@ public interface DyoaHistoryMapper {
     Date findCommissionDeclareDate(@Param("id") String id);
 
 
-
+    Map<String, Object> getMembersAndSigner(@Param("id") String id);
 }

+ 2 - 0
dao/src/main/java/com/dayou/mapper/DyoaRecordMapper.java

@@ -48,4 +48,6 @@ public interface DyoaRecordMapper extends CustomBaseMapper<DyoaRecord> {
     FinanceInvoice getMbsIdByDyOAiDForInvoice(@Param("dyoaId") String dyoaId);
 
     Long getMbsRealAmountId(@Param("incomeId")String incomeId, @Param("name")String name);
+
+    String getMembersAndSignerInDyoa(@Param("id") Long id);
 }

+ 4 - 0
dao/src/main/resources/mapper/AssetsProductionMapper.xml

@@ -344,4 +344,8 @@
         AND deleted = 0
     </update>
 
+    <select id="getReportByAssetsId" parameterType="java.lang.Long" resultType="java.lang.Long">
+        select id from assets_production where production_type = 'REPORT' and business_id = #{businessId} and deleted = 0
+    </select>
+
 </mapper>

+ 4 - 0
dao/src/main/resources/mapper/DyoaHistoryMapper.xml

@@ -487,4 +487,8 @@
         select createdDatetime from wf_flow_instance where id = #{id}
     </select>
 
+    <select id="getMembersAndSigner" parameterType="java.lang.String" resultType="map">
+        select members,signEmpName1,signEmpName2 from dy_assets where id = #{id}
+    </select>
+
 </mapper>

+ 4 - 0
dao/src/main/resources/mapper/DyoaRecordMapper.xml

@@ -109,4 +109,8 @@
         select mbs_id from dyoa_record where mbs_type = #{name} and dyoa_id = #{incomeId} and deleted = 0
     </select>
 
+    <select id="getMembersAndSignerInDyoa" parameterType="java.lang.Long" resultType="java.lang.String">
+        select dyoa_id from dyoa_record where mbs_type = 'ASSETS_ORDER' and mbs_id = #{id} and deleted = 0
+    </select>
+
 </mapper>

+ 93 - 11
service/src/main/java/com/dayou/dyoa/DyoaHistoryServiceImpl.java

@@ -1708,6 +1708,7 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
             if (StrUtil.isNotBlank(hisCommissionDeclare.getReportNO())){
                 List<MajorProduction> mps = majorProductionService.list(new LambdaQueryWrapper<MajorProduction>()
                         .select(BaseEntity::getId)
+                        .eq(MajorProduction::getProduction,REPORT.name())
                         .eq(MajorProduction::getReportNo, hisCommissionDeclare.getReportNO()));
                 if  (CollectionUtils.isNotEmpty(mps)){
                     mpId = mps.get(0).getId();
@@ -1724,14 +1725,14 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
                 if (StrUtil.isNotBlank(pgFlowInstanceId)){
                     created = dyoaHistoryMapper.findCommissionDeclareDate(pgFlowInstanceId);
                 }
-                CommissionDeclare pgCd = commissionDeclareService.getOne(new LambdaQueryWrapper<CommissionDeclare>()
+                List<CommissionDeclare> cds = commissionDeclareService.list(new LambdaQueryWrapper<CommissionDeclare>()
                         .eq(CommissionDeclare::getBusinessType, "COMMISSION_DECLARE_MAJOR_EVALUATE")
                         .eq(CommissionDeclare::getBusinessId, majorId)
                         .eq(mpId != null, CommissionDeclare::getProductionId, mpId)
                         .eq(CommissionDeclare::getDeclareUserId, pgUserId)
                         .eq(CommissionDeclare::getDeclareResult, "审核通过")
                         .eq(CommissionDeclare::getCommissionRateId, pgBusinessType1));
-                if (pgCd==null ){
+                if (cds==null || cds.size()==0 ){
                     CommissionDeclare commissionDeclare = new CommissionDeclare();
                     commissionDeclare.setBusinessType("COMMISSION_DECLARE_MAJOR_EVALUATE");
                     commissionDeclare.setBusinessId(majorId);
@@ -1743,9 +1744,21 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
                     commissionDeclareService.save(commissionDeclare);
                     pgcdId = commissionDeclare.getId();
                 }else{
-                    pgcdId = pgCd.getId();
-                    commissionDeclareService.update(new LambdaUpdateWrapper<CommissionDeclare>()
-                            .set(BaseEntity::getCreated,created==null?hisCommissionDeclare.getCreatedDatetime():created).eq(BaseEntity::getId,pgcdId));
+                    if (cds.size()>1){
+                        commissionDeclareService.delete(cds.get(0).getId());
+                        pgcdId = cds.get(1).getId();
+                        commissionDeclareService.update(new LambdaUpdateWrapper<CommissionDeclare>()
+                                .set(BaseEntity::getCreated,created==null?hisCommissionDeclare.getCreatedDatetime():created)
+                                .set(CommissionDeclare::getProductionId,mpId)
+                                .eq(BaseEntity::getId,pgcdId));
+                    }else{
+
+                        pgcdId = cds.get(0).getId();
+                        commissionDeclareService.update(new LambdaUpdateWrapper<CommissionDeclare>()
+                                .set(BaseEntity::getCreated,created==null?hisCommissionDeclare.getCreatedDatetime():created)
+                                .set(CommissionDeclare::getProductionId,mpId)
+                                .eq(BaseEntity::getId,pgcdId));
+                    }
                 }
                 //查询评估人员绩效比例
                 List<CommissionRate> rates = dyoaHistoryMapper.findPgRate(hisCommissionDeclare.getId());
@@ -1777,14 +1790,17 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
                 if (StrUtil.isNotBlank(masterFlowInstanceId)){
                     created = dyoaHistoryMapper.findCommissionDeclareDate(masterFlowInstanceId);
                 }
-                CommissionDeclare pgCd = commissionDeclareService.getOne(new LambdaQueryWrapper<CommissionDeclare>()
+                CommissionDeclare pgCd = null;
+                List<CommissionDeclare> pgCds = commissionDeclareService.list(new LambdaQueryWrapper<CommissionDeclare>()
                         .eq(CommissionDeclare::getBusinessType, "COMMISSION_DECLARE_MAJOR_MARKET")
                         .eq(CommissionDeclare::getBusinessId, majorId)
                         .eq(mpId != null, CommissionDeclare::getProductionId, mpId)
                         .eq(CommissionDeclare::getDeclareUserId, scUserId)
                         .eq(CommissionDeclare::getDeclareResult, "审核通过")
-                        .eq(CommissionDeclare::getCommissionRateId, scBusinessType1));
-                if (pgCd==null){
+                        .eq(CommissionDeclare::getCommissionRateId, scBusinessType1).orderByDesc(BaseEntity::getCreated))
+                        ;
+
+                if (pgCds==null || pgCds.size()==0){
                     CommissionDeclare commissionDeclare = new CommissionDeclare();
                     commissionDeclare.setBusinessType("COMMISSION_DECLARE_MAJOR_MARKET");
                     commissionDeclare.setBusinessId(majorId);
@@ -1796,9 +1812,21 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
                     commissionDeclareService.save(commissionDeclare);
                     sccdId = commissionDeclare.getId();
                 }else {
-                    sccdId = pgCd.getId();
-                    commissionDeclareService.update(new LambdaUpdateWrapper<CommissionDeclare>()
-                            .set(BaseEntity::getCreated,created==null?hisCommissionDeclare.getCreatedDatetime():created).eq(BaseEntity::getId,sccdId));
+                    if (pgCds.size()>1){
+                        commissionDeclareService.delete(pgCds.get(0).getId());
+                        pgCd =pgCds.get(1);
+                        sccdId = pgCd.getId();
+                        commissionDeclareService.update(new LambdaUpdateWrapper<CommissionDeclare>()
+                                .set(CommissionDeclare::getProductionId,mpId)
+                                .set(BaseEntity::getCreated,created==null?hisCommissionDeclare.getCreatedDatetime():created).eq(BaseEntity::getId,sccdId));
+                    }else{
+                        pgCd =pgCds.get(0);
+                        sccdId = pgCd.getId();
+                        commissionDeclareService.update(new LambdaUpdateWrapper<CommissionDeclare>()
+                                .set(CommissionDeclare::getProductionId,mpId)
+                                .set(BaseEntity::getCreated,created==null?hisCommissionDeclare.getCreatedDatetime():created).eq(BaseEntity::getId,sccdId));
+                    }
+
                 }
                 //查询市场人员绩效比例
                 List<CommissionRate> rates = dyoaHistoryMapper.findScRate(hisCommissionDeclare.getId());
@@ -1933,6 +1961,60 @@ public class DyoaHistoryServiceImpl implements IDyoaHistoryService{
         return true;
     }
 
+    @Override
+    public Boolean updateAssetsMembers() {
+        List<Assets> list = assetsService.getMembersIsNull();
+        for (Assets assets : list){
+            String dyoaId = dyoaRecordService.getMembersAndSignerInDyoa(assets.getId());
+            if (StrUtil.isNotBlank(dyoaId)){
+                List<Long> memberIds = new ArrayList<>();
+                Map<String,Object> members = dyoaHistoryMapper.getMembersAndSigner(dyoaId);
+                if (members==null){
+                    continue;
+                }
+                Object o = members.get("members");
+                if (o!=null){
+                    String mebStr = (String) o;
+                    List<String> mList = Arrays.asList(mebStr.split(","));
+                    for (String m : mList){
+                        m = m.replaceAll(" ","");
+                        Long mbsUserId = getMbsUserId(m);
+                        if (!mbsUserId.equals(1L)){
+                            memberIds.add(mbsUserId);
+                        }
+                    }
+                }
+
+                assets.setMembers(JSON.toJSONString(memberIds));
+
+                assetsService.updateMembers(assets);
+                List<Long> signs = new ArrayList<>();
+                Object o1 = members.get("signEmpName1");
+                if (o1!=null){
+                    String s1 = (String) o1;
+                    Long s1Id = getMbsUserId(s1);
+                    if (!s1Id.equals(1L)){
+                        signs.add(s1Id);
+                    }
+                }
+                Object o2 = members.get("signEmpName2");
+                if (o2!=null){
+                    String s2 = (String) o2;
+                    Long s2Id = getMbsUserId(s2);
+                    if (!s2Id.equals(1L)){
+                        signs.add(s2Id);
+                    }
+                }
+
+                List<Long> reportByAssetsId = assetsProductionService.getReportByAssetsId(assets.getId());
+                for (Long reportId : reportByAssetsId){
+                    assetsProductionService.updateSigner(JSON.toJSONString(signs),reportId);
+                }
+            }
+        }
+        return null;
+    }
+
 
     @Override
     public Boolean updateProductionFund() {

+ 2 - 0
service/src/main/java/com/dayou/dyoa/IDyoaHistoryService.java

@@ -51,4 +51,6 @@ public interface IDyoaHistoryService {
     Boolean updatePersonalProductionTime();
 
     Boolean updateMajorSubClientId();
+
+    Boolean updateAssetsMembers();
 }

+ 7 - 0
service/src/main/java/com/dayou/dyoa/task/FetchDyoaDataSchedule.java

@@ -36,6 +36,13 @@ public class FetchDyoaDataSchedule {
         log.info("同步资产数据完成");
     }
 
+    //每天凌晨03:30触发
+    @Scheduled(cron = "0 40 3 * * ?")
+    public void updateAssetsMembers(){
+        dyoaHistoryService.updateAssetsMembers();
+        log.info("更新资产订单的项目成员和签字师完成");
+    }
+
     //每天凌晨04:30触发
     @Scheduled(cron = "0 30 4 * * ?")
     public void syncRealAmountData(){

+ 4 - 0
service/src/main/java/com/dayou/service/IAssetsProductionService.java

@@ -165,4 +165,8 @@ public interface IAssetsProductionService extends IService<AssetsProduction> {
          * @param saveFileDate 归档时间
          */
         void prodSaveFile(Date saveFileDate, String productionNo);
+
+        List<Long> getReportByAssetsId(Long id);
+
+        void updateSigner(String jsonString, Long reportId);
 }

+ 3 - 0
service/src/main/java/com/dayou/service/IAssetsService.java

@@ -152,4 +152,7 @@ public interface IAssetsService extends IService<Assets> {
          */
         List<Department> getAssetsMarketDepartment();
 
+        List<Assets> getMembersIsNull();
+
+        void updateMembers(Assets assets);
 }

+ 2 - 0
service/src/main/java/com/dayou/service/IDyoaRecordService.java

@@ -51,5 +51,7 @@ public interface IDyoaRecordService extends IService<DyoaRecord> {
     FinanceInvoice getMbsIdByDyOAiDForInvoice(String dyoaId);
 
     Long getMbsRealAmountId(String incomeId, String name);
+
+    String getMembersAndSignerInDyoa(Long id);
 }
 

+ 11 - 0
service/src/main/java/com/dayou/service/impl/AssetsProductionServiceImpl.java

@@ -483,6 +483,17 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
         assetsProductionMapper.prodSaveFile(saveFileDate, productionNo);
     }
 
+    @Override
+    public List<Long> getReportByAssetsId(Long id) {
+        return assetsProductionMapper.getReportByAssetsId(id);
+    }
+
+    @Override
+    public void updateSigner(String jsonString, Long reportId) {
+        this.update(new LambdaUpdateWrapper<AssetsProduction>()
+                .set(AssetsProduction::getSignatory,jsonString).eq(BaseEntity::getId,reportId));
+    }
+
     /**
      * 新增订单产品收款信息
      *

+ 10 - 0
service/src/main/java/com/dayou/service/impl/AssetsServiceImpl.java

@@ -690,6 +690,16 @@ public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> impleme
         return assetsMapper.getMarkeDepartment();
     }
 
+    @Override
+    public List<Assets> getMembersIsNull() {
+        return assetsMapper.selectList(new LambdaQueryWrapper<Assets>().isNull(Assets::getMembers).select(BaseEntity::getId,Assets::getOrderId));
+    }
+
+    @Override
+    public void updateMembers(Assets assets) {
+        this.update(new LambdaUpdateWrapper<Assets>().eq(BaseEntity::getId,assets.getId()).set(Assets::getMembers,assets.getMembers()));
+    }
+
     /**
      * 获取资产轮单部门id
      *

+ 5 - 0
service/src/main/java/com/dayou/service/impl/DyoaRecordServiceImpl.java

@@ -119,5 +119,10 @@ public class DyoaRecordServiceImpl extends ServiceImpl<DyoaRecordMapper, DyoaRec
         return dyoaRecordMapper.getMbsRealAmountId(incomeId,name);
     }
 
+    @Override
+    public String getMembersAndSignerInDyoa(Long id) {
+        return dyoaRecordMapper.getMembersAndSignerInDyoa(id);
+    }
+
 
 }