|
|
@@ -1,10 +1,35 @@
|
|
|
package com.dk.mnls_mp.controller.mnls;
|
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.dk.mnls_mp.infrastructure.convert.IBOSSGoodsCodeConvert;
|
|
|
+import com.dk.mnls_mp.mapper.basic.CodeRecordMapper;
|
|
|
+import com.dk.mnls_mp.mapper.basic.CustomerMapper;
|
|
|
+import com.dk.mnls_mp.mapper.basic.SynchStatusMapper;
|
|
|
+import com.dk.mnls_mp.mapper.mnls.IBOSSGoodsCodeMapper;
|
|
|
+import com.dk.mnls_mp.model.pojo.basic.Customer;
|
|
|
+import com.dk.mnls_mp.model.pojo.basic.SynchStatus;
|
|
|
+import com.dk.mnls_mp.model.pojo.mnls.IBOSSGoodsCode;
|
|
|
+import com.dk.mnls_mp.model.vo.IBOSSGoodsCodeVO;
|
|
|
+import com.dk.mnls_mp.service.mnls.SyncIBOSSGoodsCode;
|
|
|
+import com.dongke.base.exceptionHandler.ResponseCodeEnum;
|
|
|
+import com.dongke.base.exceptionHandler.ResponseResultUtil;
|
|
|
+import com.dongke.base.exceptionHandler.ResponseResultVO;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.CrossOrigin;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* iBOSS商品编码表 前端控制器
|
|
|
@@ -13,8 +38,63 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
* @author 张潇木
|
|
|
* @since 2022-09-23
|
|
|
*/
|
|
|
+@CrossOrigin(
|
|
|
+ origins = {"*"},
|
|
|
+ allowCredentials = "true"
|
|
|
+)
|
|
|
+@Slf4j
|
|
|
@RestController
|
|
|
-@RequestMapping("/iboss-goods-code")
|
|
|
+@RequestMapping("/iboss_goods_code")
|
|
|
public class IBOSSGoodsCodeController {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ CustomerMapper customerMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ CodeRecordMapper codeRecordMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ IBOSSGoodsCodeConvert IBOSSGoodsCodeConvert;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ IBOSSGoodsCodeMapper IBOSSGoodsCodeMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ SynchStatusMapper synchStatusMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ SyncIBOSSGoodsCode syncIBOSSGoodsCode;
|
|
|
+
|
|
|
+ @ApiOperation(value = "手动同步商品编码", notes = "手动同步商品编码")
|
|
|
+ @PostMapping({"/sync_goods_code_by_hand"})
|
|
|
+ public ResponseResultVO syncGoodsCodeByHand(){
|
|
|
+ //查询同步客户
|
|
|
+ List<Customer> customers = customerMapper.selectAllCus();
|
|
|
+ //定义插入履历参数
|
|
|
+ Map syncRecord=new HashMap(4){{put("CreateTime", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now()));}};
|
|
|
+ //插入同步履历
|
|
|
+ codeRecordMapper.insertResult(syncRecord);
|
|
|
+ //获取同步总表id
|
|
|
+ int syncId = Integer.valueOf(syncRecord.get("syncId").toString());
|
|
|
+ //获取需要同步的编码
|
|
|
+ //todo 同步的是当天的新编码,可优化为从上一次同步成功开始查
|
|
|
+ List<IBOSSGoodsCodeVO> list = IBOSSGoodsCodeConvert.goodsCodePO2IBOSSVO(IBOSSGoodsCodeMapper.selectList(new QueryWrapper<IBOSSGoodsCode>().lambda().gt(IBOSSGoodsCode::getCreateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDateTime.now()))));
|
|
|
+ //记录日志
|
|
|
+ log.info("需要同步的经销商数量=>{},经销商信息=>{}",customers.size(),customers);
|
|
|
+ log.info("需要同步的新编码数量=>{},编码明细=>{}",list.size(),list);
|
|
|
+ //有新编码需要同步,再调用接口同步
|
|
|
+ if(list.size()>0){
|
|
|
+ //todo 每个经销商每天的同步状态可能有失败的,此处可以优化为根据每个经销商的不同的同步情况,来同步不同的编码。
|
|
|
+ //循环同步所有经销商
|
|
|
+ for (Customer it : customers) {
|
|
|
+ //先插入同步履历明细
|
|
|
+ synchStatusMapper.insertDetail(new SynchStatus().setSynchid(syncId).setCustomerid(it.getCustomerid()).setStatus(0));
|
|
|
+ //调用同步接口
|
|
|
+ syncIBOSSGoodsCode.syncCode(it,syncId,list);
|
|
|
+ }
|
|
|
+ return ResponseResultUtil.success();
|
|
|
+ }else{
|
|
|
+ return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(),"无新编码需要同步");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|