czh 2 лет назад
Родитель
Сommit
c89f92f017

+ 20 - 0
sckw-auth/src/main/java/com/sckw/auth/model/vo/res/EntInfoResVo.java

@@ -42,6 +42,26 @@ public class EntInfoResVo {
      */
     private Boolean valid;
 
+    /**
+     * 企业联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 法人姓名
+     */
+    private String legalName;
+
+    /**
+     * 法人联系电话
+     */
+    private String legalPhone;
+
     /**
      * 机构信息
      */

+ 2 - 6
sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java

@@ -244,7 +244,7 @@ public class AuthServiceImpl implements IAuthService {
                 return;
             }
             //单独存用户企业
-            RedissonUtils.putString(Global.getFullUserEntKey(loginResVo.getSystemType(), loginResVo.getId()), JSON.toJSONString(entInfo), Global.PC_TOKEN_EXPIRE);
+//            RedissonUtils.putString(Global.getFullUserEntKey(loginResVo.getSystemType(), loginResVo.getId()), JSON.toJSONString(entInfo), Global.PC_TOKEN_EXPIRE);
 
             //存企业信息
             saveEntLoginInfo(entInfo);
@@ -258,12 +258,8 @@ public class AuthServiceImpl implements IAuthService {
          */
         private void saveEntLoginInfo(EntInfoResVo entInfo) {
             LoginEntInfo loginEntInfo = new LoginEntInfo();
-            loginEntInfo.setId(entInfo.getId());
-            loginEntInfo.setFirmName(entInfo.getFirmName());
-            loginEntInfo.setApproval(entInfo.getApproval());
-            loginEntInfo.setRegTime(entInfo.getRegTime());
+            BeanUtils.copyProperties(entInfo, loginEntInfo);
             loginEntInfo.setCertificateInfo(BeanUtils.copyToList(entInfo.getCertificateInfo(), EntCertificateInfo.class));
-            loginEntInfo.setValid(entInfo.getValid());
             RedissonUtils.putString(Global.REDIS_ENTERPRISE_PREFIX + entInfo.getId(), JSON.toJSONString(loginEntInfo), Global.PC_TOKEN_EXPIRE);
         }
 

+ 1 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java

@@ -168,5 +168,6 @@ public class HttpStatus {
     public static final String MSG_025 = "禁止删除本人信息!";
     public static final String MSG_026 = "资质认证审核中,请等待审核后再提交!";
     public static final String MSG_027 = "一级机构不能删除!";
+    public static final String MSG_028 = "合同未签约,不能手动完结!";
 
 }

+ 20 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/model/LoginEntInfo.java

@@ -46,6 +46,26 @@ public class LoginEntInfo {
      */
     private int jtaqDelFlag;
 
+    /**
+     * 企业联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 法人姓名
+     */
+    private String legalName;
+
+    /**
+     * 法人联系电话
+     */
+    private String legalPhone;
+
     /**
      * 企业注册时间
      */

+ 10 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/TradeBaseInfoResVo.java

@@ -37,6 +37,11 @@ public class TradeBaseInfoResVo implements Serializable {
      */
     private String provideEntName;
 
+    /**
+     * 供应单位
+     */
+    private Long provideEntId;
+
     /**
      * 供应单位联系电话
      */
@@ -47,6 +52,11 @@ public class TradeBaseInfoResVo implements Serializable {
      */
     private String purchaseEntName;
 
+    /**
+     * 采购单位
+     */
+    private Long purchaseEntId;
+
     /**
      * 采购单位联系电话
      */

+ 8 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/TradeGoodsInfoResVo.java

@@ -21,16 +21,24 @@ public class TradeGoodsInfoResVo implements Serializable {
      * 采购数量
      */
     private BigDecimal amount;
+
     /**
      * 商品
      */
     private String goodsName;
+
     /**
      * 单价
      */
     private BigDecimal price;
+
     /**
      * 单位
      */
     private String unit;
+
+    /**
+     * 单位名
+     */
+    private String unitName;
 }

+ 20 - 6
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java

@@ -224,10 +224,6 @@ public class KwcContractLogisticsService {
                 logisticsGoodsInfoResVo.setGoodsId(kwcContractLogisticsGoods.getGoodsId());
                 logisticsGoodsInfoResVo.setId(kwcContractLogisticsGoods.getId());
                 logisticsGoodsInfoResVo.setGoodsName(kwcContractLogisticsGoods.getGoodsName());
-//                KwpGoods kwpGoods = goodsMap.get(kwcContractLogisticsGoods.getGoodsId());
-//                if (Objects.nonNull(kwpGoods)) {
-//                    logisticsGoodsInfoResVo.setGoodsName(kwpGoods.getName());
-//                }
                 logisticsGoodsInfoResVo.setLoss(kwcContractLogisticsGoods.getLoss());
                 logisticsGoodsInfoResVo.setLossUnit(kwcContractLogisticsGoods.getLossUnit());
 
@@ -328,6 +324,7 @@ public class KwcContractLogisticsService {
     @Transactional(rollbackFor = {})
     public void update(ContractLogisticsReqVo reqVo) {
         Long contractId = reqVo.getId();
+        Date date = new Date();
         KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(contractId);
         if (Objects.isNull(kwcContractLogistics)) {
             throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.CONTRACT_NOT_EXISTS);
@@ -338,7 +335,7 @@ public class KwcContractLogisticsService {
         param.setSigningUrl(reqVo.getContractFile());
         param.setStatus(ContractStatusEnum.SAVE.getCode());
         param.setUpdateBy(LoginUserHolder.getUserId());
-        param.setUpdateTime(new Date());
+        param.setUpdateTime(date);
         if (kwcContractLogisticsMapper.updateById(param) <= 0) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
         }
@@ -347,7 +344,6 @@ public class KwcContractLogisticsService {
         //保存交易合同商品信息-先把以前的删除
         List<KwcContractLogisticsGoods> kwcContractLogisticsGoodsList = kwcContractLogisticsGoodsService.queryGoodsInfoByContractId(contractId);
         if (CollectionUtils.isNotEmpty(kwcContractLogisticsGoodsList)) {
-            Date date = new Date();
             kwcContractLogisticsGoodsList.forEach(item -> {
                 item.setDelFlag(Global.YES);
                 item.setUpdateBy(LoginUserHolder.getUserId());
@@ -359,6 +355,21 @@ public class KwcContractLogisticsService {
             }
         }
         kwcContractLogisticsGoodsService.saveContractLogisticsGoods(kwcContractLogistics.getId(), reqVo.getGoodsInfo());
+
+        //保存单位信息-先把以前的删除
+        List<KwcContractLogisticsUnit> kwcContractLogisticsUnits = kwcContractLogisticsUnitService.queryByContractId(contractId);
+        if (CollectionUtils.isNotEmpty(kwcContractLogisticsUnits)) {
+            kwcContractLogisticsUnits.forEach(item -> {
+                item.setDelFlag(Global.YES);
+                item.setUpdateBy(LoginUserHolder.getUserId());
+                item.setUpdateTime(date);
+            });
+
+            if (kwcContractLogisticsUnitService.updateBatch(kwcContractLogisticsUnits) != kwcContractLogisticsUnits.size()) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+            }
+        }
+        kwcContractLogisticsUnitService.saveContractLogisticsUnit(kwcContractLogistics.getId(), reqVo.getBaseInfo());
     }
 
     /**
@@ -373,6 +384,9 @@ public class KwcContractLogisticsService {
         List<KwcContractLogistics> kwcContractLogistics = kwcContractLogisticsMapper.selectBatchIds(contractIdList);
         Date date = new Date();
         kwcContractLogistics.forEach(item -> {
+            if (!item.getStatus().equals(ContractStatusEnum.SIGNED.getCode())) {
+                throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_028);
+            }
             item.setStatus(ContractStatusEnum.COMPLETE.getCode());
             item.setUpdateBy(LoginUserHolder.getUserId());
             item.setUpdateTime(date);

+ 59 - 27
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsUnitService.java

@@ -4,11 +4,13 @@ import java.util.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.contract.dao.KwcContractLogisticsUnitMapper;
+import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
 import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
 import com.sckw.contract.model.vo.req.LogisticsBaseInfoReqVo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CooperateTypeEnum;
+import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -38,12 +40,20 @@ public class KwcContractLogisticsUnitService {
      */
     public void saveContractLogisticsUnit(Long contractId, LogisticsBaseInfoReqVo baseInfo) throws SystemException {
         List<Long> entIdList = new ArrayList<>();
-        entIdList.add(baseInfo.getCheckedEntId());
-        entIdList.add(baseInfo.getCarrierEntId());
-        Map<Long, EntCacheResDto> entCacheResDtoMap = commonBusinessService.queryEntCacheMapByIds(entIdList);
+        if (Objects.nonNull(baseInfo.getCheckedEntId())) {
+            entIdList.add(baseInfo.getCheckedEntId());
+        }
 
-        Date date = new Date();
-        saveCheckAndCarrier(contractId, entCacheResDtoMap, date, baseInfo);
+        if (Objects.nonNull(baseInfo.getCarrierEntId())) {
+            entIdList.add(baseInfo.getCarrierEntId());
+        }
+
+        if (CollectionUtils.isEmpty(entIdList)) {
+            return;
+        }
+
+        Map<Long, EntCacheResDto> entCacheResDtoMap = commonBusinessService.queryEntCacheMapByIds(entIdList);
+        saveCheckAndCarrier(contractId, entCacheResDtoMap, baseInfo);
     }
 
     /**
@@ -52,33 +62,40 @@ public class KwcContractLogisticsUnitService {
      * @author: czh
      * @date 2023/7/16
      */
-    private void saveCheckAndCarrier(Long contractId, Map<Long, EntCacheResDto> entCacheResDtoMap, Date date, LogisticsBaseInfoReqVo logisticsBaseInfoReqVo) {
+    private void saveCheckAndCarrier(Long contractId, Map<Long, EntCacheResDto> entCacheResDtoMap, LogisticsBaseInfoReqVo logisticsBaseInfoReqVo) throws SystemException {
+        Date date = new Date();
         //存托运企业
+        Long checkedEntId = logisticsBaseInfoReqVo.getCheckedEntId();
         KwcContractLogisticsUnit kwcContractLogisticsUnit = new KwcContractLogisticsUnit();
-        kwcContractLogisticsUnit.setId(new IdWorker(1L).nextId());
-        kwcContractLogisticsUnit.setContractId(contractId);
-        kwcContractLogisticsUnit.setUnitType(CooperateTypeEnum.CONSIGN.getCode());
-        kwcContractLogisticsUnit.setEntId(logisticsBaseInfoReqVo.getCheckedEntId());
-        saveEnt(entCacheResDtoMap, kwcContractLogisticsUnit);
-        kwcContractLogisticsUnit.setSignPhone(logisticsBaseInfoReqVo.getCheckedPhone());
-        kwcContractLogisticsUnit.setStatus(Global.NO);
-        kwcContractLogisticsUnit.setCreateBy(LoginUserHolder.getUserId());
-        kwcContractLogisticsUnit.setCreateTime(date);
-        kwcContractLogisticsUnit.setUpdateBy(LoginUserHolder.getUserId());
-        kwcContractLogisticsUnit.setUpdateTime(date);
-        kwcContractLogisticsUnit.setDelFlag(Global.NO);
-        if (kwcContractLogisticsUnitMapper.insert(kwcContractLogisticsUnit) <= 0) {
-            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        if (Objects.nonNull(checkedEntId)) {
+            kwcContractLogisticsUnit.setId(new IdWorker(1L).nextId());
+            kwcContractLogisticsUnit.setContractId(contractId);
+            kwcContractLogisticsUnit.setUnitType(CooperateTypeEnum.CONSIGN.getCode());
+            kwcContractLogisticsUnit.setEntId(checkedEntId);
+            saveEnt(entCacheResDtoMap, kwcContractLogisticsUnit);
+            kwcContractLogisticsUnit.setSignPhone(logisticsBaseInfoReqVo.getCheckedPhone());
+            kwcContractLogisticsUnit.setStatus(Global.NO);
+            kwcContractLogisticsUnit.setCreateBy(LoginUserHolder.getUserId());
+            kwcContractLogisticsUnit.setCreateTime(date);
+            kwcContractLogisticsUnit.setUpdateBy(LoginUserHolder.getUserId());
+            kwcContractLogisticsUnit.setUpdateTime(date);
+            kwcContractLogisticsUnit.setDelFlag(Global.NO);
+            if (kwcContractLogisticsUnitMapper.insert(kwcContractLogisticsUnit) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+            }
         }
 
         //存承运运企业
-        kwcContractLogisticsUnit.setId(new IdWorker(1L).nextId());
-        kwcContractLogisticsUnit.setUnitType(CooperateTypeEnum.CARRIAGE.getCode());
-        kwcContractLogisticsUnit.setEntId(logisticsBaseInfoReqVo.getCarrierEntId());
-        saveEnt(entCacheResDtoMap, kwcContractLogisticsUnit);
-        kwcContractLogisticsUnit.setSignPhone(logisticsBaseInfoReqVo.getCarrierPhone());
-        if (kwcContractLogisticsUnitMapper.insert(kwcContractLogisticsUnit) <= 0) {
-            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        Long carrierEntId = logisticsBaseInfoReqVo.getCarrierEntId();
+        if (Objects.nonNull(carrierEntId)) {
+            kwcContractLogisticsUnit.setId(new IdWorker(1L).nextId());
+            kwcContractLogisticsUnit.setUnitType(CooperateTypeEnum.CARRIAGE.getCode());
+            kwcContractLogisticsUnit.setEntId(carrierEntId);
+            saveEnt(entCacheResDtoMap, kwcContractLogisticsUnit);
+            kwcContractLogisticsUnit.setSignPhone(logisticsBaseInfoReqVo.getCarrierPhone());
+            if (kwcContractLogisticsUnitMapper.insert(kwcContractLogisticsUnit) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+            }
         }
     }
 
@@ -110,6 +127,21 @@ public class KwcContractLogisticsUnitService {
         wrapper.eq(KwcContractLogisticsUnit::getStatus, Global.NO);
         return kwcContractLogisticsUnitMapper.selectList(wrapper);
     }
+
+    /**
+     * @return 修改个数
+     * @desc: 修改
+     * @param: list 实体类
+     * @author: czh
+     * @date 2023/7/17
+     */
+    public int updateBatch(List<KwcContractLogisticsUnit> list) {
+        int count = 0;
+        for (KwcContractLogisticsUnit kwcContractLogisticsUnit : list) {
+            count += kwcContractLogisticsUnitMapper.updateById(kwcContractLogisticsUnit);
+        }
+        return count;
+    }
 }
 
 

+ 26 - 3
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeService.java

@@ -27,6 +27,8 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.excel.utils.EasyExcelUtil;
 import com.sckw.product.api.dubbo.GoodsInfoService;
+import com.sckw.product.api.model.KwpGoods;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -236,11 +238,13 @@ public class KwcContractTradeService {
                 if (kwcContractTradeUnit.getUnitType().compareTo(EntTypeEnum.SUPPLIER.getCode()) == 0) {
                     tradeBaseInfoResVo.setProvideEntName(kwcContractTradeUnit.getFirmName());
                     tradeBaseInfoResVo.setProvidePhone(kwcContractTradeUnit.getSignPhone());
+                    tradeBaseInfoResVo.setProvideEntId(kwcContractTradeUnit.getEntId());
                 }
 
                 if (kwcContractTradeUnit.getUnitType().compareTo(EntTypeEnum.PURCHASER.getCode()) == 0) {
                     tradeBaseInfoResVo.setPurchaseEntName(kwcContractTradeUnit.getFirmName());
                     tradeBaseInfoResVo.setPurchasePhone(kwcContractTradeUnit.getPhone());
+                    tradeBaseInfoResVo.setPurchaseEntId(kwcContractTradeUnit.getEntId());
                 }
             }
         }
@@ -248,15 +252,34 @@ public class KwcContractTradeService {
 
         //标的信息
         List<KwcContractTradeGoods> kwcContractTradeGoodsList = kwcContractTradeGoodsService.queryGoodsInfoByContractId(id);
+        List<Long> goodsIdList = kwcContractTradeGoodsList.stream().map(KwcContractTradeGoods::getGoodsId).toList();
+        Map<Long, KwpGoods> goodsMap = goodsInfoService.getGoodsByIds(goodsIdList);
         if (CollectionUtils.isNotEmpty(kwcContractTradeGoodsList)) {
-            //todo 通过商品id查商品信息,填充商品名
             List<TradeGoodsInfoResVo> tradeGoodsInfoResVoList = new ArrayList<>();
+
+            StringBuilder keys = new StringBuilder();
+            for (KwcContractTradeGoods item : kwcContractTradeGoodsList) {
+                keys.append(DictTypeEnum.UNIT_TYPE.getType()).append(Global.POUND).append(item.getUnit()).append(Global.COMMA);
+            }
+            Map<String, SysDictResDto> stringSysDictResDtoMap = remoteSystemService.queryDictMapByTypeValues(keys.toString());
+
+
             for (KwcContractTradeGoods kwcContractTradeGoods : kwcContractTradeGoodsList) {
                 TradeGoodsInfoResVo tradeGoodsInfoResVo = new TradeGoodsInfoResVo();
                 tradeGoodsInfoResVo.setAmount(kwcContractTradeGoods.getAmount());
-//                tradeGoodsInfoResVo.setGoodsName();
                 tradeGoodsInfoResVo.setPrice(kwcContractTradeGoods.getPrice());
-//                tradeGoodsInfoResVo.setUnit(0);
+                tradeGoodsInfoResVo.setUnit(kwcContractTradeGoods.getUnit());
+
+                KwpGoods kwpGoods = goodsMap.get(kwcContractTradeGoods.getGoodsId());
+                if (Objects.nonNull(kwpGoods)) {
+                    tradeGoodsInfoResVo.setGoodsName(kwpGoods.getName());
+                }
+
+                SysDictResDto sysDictResDto = stringSysDictResDtoMap.get(DictTypeEnum.UNIT_TYPE.getType() + Global.POUND + kwcContractTradeGoods.getUnit());
+                if(Objects.nonNull(sysDictResDto)) {
+                    tradeGoodsInfoResVo.setUnitName(sysDictResDto.getLabel());
+                }
+
                 tradeGoodsInfoResVoList.add(tradeGoodsInfoResVo);
             }
             contractTradeDetailResVo.setGoodsInfo(tradeGoodsInfoResVoList);

+ 3 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -259,6 +259,9 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         Map<Long, EntCacheResDto> result = new HashMap<>();
         for (Long entId : entIdList) {
             EntCacheResDto entCacheResDto = queryEntCacheById(entId);
+            if (Objects.isNull(entCacheResDto)) {
+                return new HashMap<>(1);
+            }
             remoteBaseService.fillRelate(entCacheResDto);
 
             //有父企业