1.增加关联小池更新4、5、6垮切割工单执行情况

2.切割计划订单管理页面增加手动同步小池按钮
master
董哲奇 1 year ago
parent de907520a0
commit 4a8168fad2

@ -28,7 +28,7 @@ public class CutPlan extends Model<CutPlan> {
private String nestSizeX;//宽
private String nestCutHo;//设备id
private Integer nestCutHo;//设备id
private String nestKakuyakuDate;//开始日期

@ -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<Device> {
@TableId(type = IdType.AUTO)
private Integer id;

@ -13,7 +13,7 @@ import lombok.Setter;
@Getter
@Setter
@TableName("iot_m_employee")
public class User extends Model<User> {
public class XiaochiUser extends Model<XiaochiUser> {
@TableId(type = IdType.AUTO)
private Integer id;

@ -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<>();
}
}

@ -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<CutPlan> {
List<CutPlan> getCutPlanList(String st,String ed);
}

@ -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<Device> {
}

@ -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<XiaochiUser> {
}

@ -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<User> users = new User().selectAll();
Map<String,User> userMap=new HashMap<>();
List<XiaochiUser> users = new XiaochiUser().selectAll();
List<Device> devices=new Device().selectAll();
Map<String, XiaochiUser> userMap=new HashMap<>();
users.forEach(item->{
userMap.put(item.getEmployeeNumber(),item);
});
Map<Integer,Device> deviceMap=new HashMap<>();
devices.forEach(item->{
deviceMap.put(item.getId(),item);
});
this.exe(userMap,deviceMap);
}
private void exe(Map<String, XiaochiUser> userMap,Map<Integer,Device> deviceMap){
log.info("========小池同步开始===========");
//todo sql查询时过滤划线数据
List<CutPlan> cutPlans = mapper.getCutPlanList(DateUtil.lastMonth().toString(),DateUtil.today())
.stream().filter(item->StrUtil.isNotEmpty(item.getNestKakuyakuDate())).collect(Collectors.toList());
List<PgdQgjh> list=new ArrayList<>();
cutPlans.forEach(item->{
PgdQgjh one = qgjhService.getOne(Wrappers.<PgdQgjh>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<String, XiaochiUser> userMap,Map<Integer,Device> deviceMap){
//CronUtil默认为分钟,目前未使用CronUtil.setMatchSecond(true)启动秒级任务,以下表示每30分钟执行一次
//每30分钟执行一次,获取小池今日加工并且未更新切割计划派工单的数据去更新派工单
CronUtil.schedule("*/30 * * * * *", (Task) () -> {
List<CutPlan> cutPlans = new CutPlan().selectList(Wrappers.<CutPlan>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<PgdQgjh> list=new ArrayList<>();
cutPlans.forEach(item->{
PgdQgjh one = qgjhService.getOne(Wrappers.<PgdQgjh>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();
}

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsic.gj_erp.mapper.xiaochi.CutPlanMapper">
<select id="getCutPlanList" resultType="cutPlan">
SELECT
left(a.nest_ext_c02,datalength(a.nest_ext_c02)-1) as 'nest_ext_c02',
a.nest_ext_c04 as 'nest_ext_c04',
left(a.nest_name_sub1,charindex('_',a.nest_name_sub1,1)-1) as 'nest_name_sub1',
a.nest_ext_c03 as 'nest_ext_c03',
a.nest_ext_c05 as 'nest_ext_c05',
a.nest_cut_ho as 'nest_cut_ho'
FROM tbl_nest_mast a
WHERE
isnull(a.nest_ext_c02,'') != '' and a.nest_kakuyaku_date between #{st} and #{ed}
and not EXISTS(
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=left(a.nest_ext_c02,datalength(a.nest_ext_c02)-1)
and b.tlth=a.nest_name_sub1
and b.kw=a.nest_ext_c03
and b.pl=a.nest_ext_c04
and (b.qgksrq is null or qgjsrq is null )
)
</select>
</mapper>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsic.gj_erp.mapper.xiaochi.DeviceMapper">
</mapper>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsic.gj_erp.mapper.xiaochi.XiaochiUserMapper">
</mapper>
Loading…
Cancel
Save