diff --git a/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java b/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java index 418cb88..77934ec 100644 --- a/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java +++ b/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java @@ -28,7 +28,7 @@ public class CutPlan extends Model { private String nestSizeX;//宽 - private String nestCutHo;//设备id + private Integer nestCutHo;//设备id private String nestKakuyakuDate;//开始日期 diff --git a/src/main/java/com/dsic/gj_erp/bean/xiaochi/Device.java b/src/main/java/com/dsic/gj_erp/bean/xiaochi/Device.java index cf20a5a..13b420d 100644 --- a/src/main/java/com/dsic/gj_erp/bean/xiaochi/Device.java +++ b/src/main/java/com/dsic/gj_erp/bean/xiaochi/Device.java @@ -3,6 +3,7 @@ package com.dsic.gj_erp.bean.xiaochi; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Getter; import lombok.Setter; @@ -12,7 +13,7 @@ import lombok.Setter; @Getter @Setter @TableName("iot_m_machine") -public class Device { +public class Device extends Model { @TableId(type = IdType.AUTO) private Integer id; diff --git a/src/main/java/com/dsic/gj_erp/bean/xiaochi/User.java b/src/main/java/com/dsic/gj_erp/bean/xiaochi/XiaochiUser.java similarity index 91% rename from src/main/java/com/dsic/gj_erp/bean/xiaochi/User.java rename to src/main/java/com/dsic/gj_erp/bean/xiaochi/XiaochiUser.java index d52e63f..8800279 100644 --- a/src/main/java/com/dsic/gj_erp/bean/xiaochi/User.java +++ b/src/main/java/com/dsic/gj_erp/bean/xiaochi/XiaochiUser.java @@ -13,7 +13,7 @@ import lombok.Setter; @Getter @Setter @TableName("iot_m_employee") -public class User extends Model { +public class XiaochiUser extends Model { @TableId(type = IdType.AUTO) private Integer id; diff --git a/src/main/java/com/dsic/gj_erp/controller/xiaochi/XiaoChiController.java b/src/main/java/com/dsic/gj_erp/controller/xiaochi/XiaoChiController.java index 4063a6a..b77cc47 100644 --- a/src/main/java/com/dsic/gj_erp/controller/xiaochi/XiaoChiController.java +++ b/src/main/java/com/dsic/gj_erp/controller/xiaochi/XiaoChiController.java @@ -1,6 +1,22 @@ package com.dsic.gj_erp.controller.xiaochi; +import com.dsic.gj_erp.bean.ResultBean; +import com.dsic.gj_erp.service.xiaochi.XiaoChiService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +@RestController +@RequestMapping("xiaochi") +@AllArgsConstructor public class XiaoChiController { + + private final XiaoChiService xiaoChiService; + + @GetMapping("syncXiaochi") + public ResultBean syncXiaochi(){ + xiaoChiService.handler(); + return new ResultBean<>(); + } } diff --git a/src/main/java/com/dsic/gj_erp/mapper/xiaochi/CutPlanMapper.java b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/CutPlanMapper.java new file mode 100644 index 0000000..2e660bf --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/CutPlanMapper.java @@ -0,0 +1,10 @@ +package com.dsic.gj_erp.mapper.xiaochi; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.xiaochi.CutPlan; + +import java.util.List; + +public interface CutPlanMapper extends BaseMapper { + List getCutPlanList(String st,String ed); +} diff --git a/src/main/java/com/dsic/gj_erp/mapper/xiaochi/DeviceMapper.java b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/DeviceMapper.java new file mode 100644 index 0000000..039415e --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/DeviceMapper.java @@ -0,0 +1,7 @@ +package com.dsic.gj_erp.mapper.xiaochi; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.xiaochi.Device; + +public interface DeviceMapper extends BaseMapper { +} diff --git a/src/main/java/com/dsic/gj_erp/mapper/xiaochi/XiaochiUserMapper.java b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/XiaochiUserMapper.java new file mode 100644 index 0000000..74a3b45 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/XiaochiUserMapper.java @@ -0,0 +1,7 @@ +package com.dsic.gj_erp.mapper.xiaochi; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.xiaochi.XiaochiUser; + +public interface XiaochiUserMapper extends BaseMapper { +} diff --git a/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java b/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java index 58fbc71..9a7e0d7 100644 --- a/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java +++ b/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java @@ -5,60 +5,88 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.cron.CronUtil; import cn.hutool.cron.task.Task; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.dsic.gj_erp.bean.pgd.PgdQgjh; import com.dsic.gj_erp.bean.xiaochi.CutPlan; -import com.dsic.gj_erp.bean.xiaochi.User; +import com.dsic.gj_erp.bean.xiaochi.Device; +import com.dsic.gj_erp.bean.xiaochi.XiaochiUser; +import com.dsic.gj_erp.mapper.xiaochi.CutPlanMapper; import com.dsic.gj_erp.service.pgd.PgdQgjhService; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; import java.util.*; +import java.util.stream.Collectors; @Service +@Slf4j @AllArgsConstructor public class XiaoChiService{ private final PgdQgjhService qgjhService; + private final CutPlanMapper mapper; - //fixme 小池查询逻辑有出入,暂时不启用 + /** + * 小池同步,先使用手动拉取方式,让钢加人员进行检查 + * 后续改为自动拉取 + */ // @PostConstruct public void handler(){ - List users = new User().selectAll(); - Map userMap=new HashMap<>(); + List users = new XiaochiUser().selectAll(); + List devices=new Device().selectAll(); + Map userMap=new HashMap<>(); users.forEach(item->{ userMap.put(item.getEmployeeNumber(),item); }); + Map deviceMap=new HashMap<>(); + devices.forEach(item->{ + deviceMap.put(item.getId(),item); + }); + this.exe(userMap,deviceMap); + } + + private void exe(Map userMap,Map deviceMap){ + log.info("========小池同步开始==========="); + //todo sql查询时过滤划线数据 + List cutPlans = mapper.getCutPlanList(DateUtil.lastMonth().toString(),DateUtil.today()) + .stream().filter(item->StrUtil.isNotEmpty(item.getNestKakuyakuDate())).collect(Collectors.toList()); + List list=new ArrayList<>(); + cutPlans.forEach(item->{ + PgdQgjh one = qgjhService.getOne(Wrappers.lambdaQuery() + .eq(PgdQgjh::getCzbh, item.getNestExtC02()) + .eq(PgdQgjh::getTlth, item.getNestNameSub1()) + .eq(PgdQgjh::getKw, item.getNestExtC03()) + .eq(PgdQgjh::getPl, item.getNestExtC04()) + ); + if (ObjectUtil.isNotEmpty(one)){ + PgdQgjh _item=new PgdQgjh(); + _item.setId(one.getId()); + Optional.of(userMap.get(item.getNestExtC05())) + .ifPresent(user-> _item.setFkry(userMap.get(item.getNestExtC05()).getName())); + + Optional.of(deviceMap.get(item.getNestCutHo())) + .ifPresent(user-> _item.setQgsbbh(deviceMap.get(item.getNestCutHo()).getMachineName())); + _item.setFkrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm:ss")); + _item.setQgksrq(item.getQgkssj()); + if (StrUtil.isNotEmpty(item.getQgjssj())){ + _item.setQgjsrq(item.getQgjssj()); + _item.setZt("09"); + } + list.add(_item); + } + }); + qgjhService.updateBatchById(list,500); + log.info("========小池同步完成==========="); + } + + private void exeAuto(Map userMap,Map deviceMap){ //CronUtil默认为分钟,目前未使用CronUtil.setMatchSecond(true)启动秒级任务,以下表示每30分钟执行一次 //每30分钟执行一次,获取小池今日加工并且未更新切割计划派工单的数据去更新派工单 CronUtil.schedule("*/30 * * * * *", (Task) () -> { - List cutPlans = new CutPlan().selectList(Wrappers.lambdaQuery() - .eq(CutPlan::getNestKakuyakuDate, DateUtil.today()) - .notExists("select b.czbh as nest_ext_c02,b.kw as nest_ext_c03 ,b.pl as nest_ext_c04 from pgd_qgjh b where b.czbh=tbl_nest_mast.nest_ext_c02 and b.tlth=tbl_nest_mast.nest_name_sub1 and b.kw=tbl_nest_mast.nest_ext_c03 and b.pl=tbl_nest_mast.nest_ext_c04 and (b.qgksrq is null or qgjsrq is null )") - ); - List list=new ArrayList<>(); - cutPlans.forEach(item->{ - PgdQgjh one = qgjhService.getOne(Wrappers.lambdaQuery() - .eq(PgdQgjh::getCzbh, item.getNestExtC02()) - .eq(PgdQgjh::getTlth, item.getNestNameSub1()) - .eq(PgdQgjh::getKw, item.getNestExtC03()) - .eq(PgdQgjh::getPl, item.getNestExtC04()) - ); - if (ObjectUtil.isNotEmpty(one)){ - PgdQgjh _item=new PgdQgjh(); - _item.setId(one.getId()); - Optional.of(userMap.get(item.getNestExtC05())) - .ifPresent(user-> _item.setFkry(userMap.get(item.getNestExtC05()).getName())); - _item.setFkrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm:ss")); - _item.setQgksrq(item.getQgkssj()); - if (StrUtil.isNotEmpty(item.getQgjssj())){ - _item.setQgjsrq(item.getQgjssj()); - _item.setZt("09"); - } - list.add(_item); - } - }); - qgjhService.updateBatchById(list,500); + this.exe(userMap,deviceMap); }); CronUtil.start(); } diff --git a/src/main/resources/mappers/xiaochi/CutPlanMapper.xml b/src/main/resources/mappers/xiaochi/CutPlanMapper.xml new file mode 100644 index 0000000..cf6f1ce --- /dev/null +++ b/src/main/resources/mappers/xiaochi/CutPlanMapper.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/src/main/resources/mappers/xiaochi/DeviceMapper.xml b/src/main/resources/mappers/xiaochi/DeviceMapper.xml new file mode 100644 index 0000000..deeaac6 --- /dev/null +++ b/src/main/resources/mappers/xiaochi/DeviceMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/mappers/xiaochi/XiaochiUserMapper.xml b/src/main/resources/mappers/xiaochi/XiaochiUserMapper.xml new file mode 100644 index 0000000..6accf10 --- /dev/null +++ b/src/main/resources/mappers/xiaochi/XiaochiUserMapper.xml @@ -0,0 +1,5 @@ + + + + +