diff --git a/src/main/java/com/dsic/gj_erp/GjErpApplication.java b/src/main/java/com/dsic/gj_erp/GjErpApplication.java index 77293d5..54a88a5 100644 --- a/src/main/java/com/dsic/gj_erp/GjErpApplication.java +++ b/src/main/java/com/dsic/gj_erp/GjErpApplication.java @@ -14,6 +14,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.context.annotation.Bean; +import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.transaction.annotation.EnableTransactionManagement; import springfox.documentation.swagger2.annotations.EnableSwagger2; @@ -21,6 +22,7 @@ import javax.annotation.PostConstruct; import javax.persistence.EntityManager; import java.util.Properties; +@EnableAsync @EnableMPP @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, diff --git a/src/main/java/com/dsic/gj_erp/bean/jiuzhou/Sljh.java b/src/main/java/com/dsic/gj_erp/bean/jiuzhou/Sljh.java new file mode 100644 index 0000000..3ba8303 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/jiuzhou/Sljh.java @@ -0,0 +1,66 @@ +package com.dsic.gj_erp.bean.jiuzhou; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dsic.gj_erp.bean.jhgk.DmYdjh; +import lombok.Getter; +import lombok.Setter; + +import java.util.Random; + +@Getter +@Setter +@TableName("im_slxx") +public class Sljh { + @TableId(type = IdType.AUTO) + private Integer slid; + private String ckh="01";//仓库号(默认01) + private String lsh;//交换码(单张板唯一码)2200049281年度+流水号 + private String ysch;//运输车号 + private String czbh; + private String ql;//期量 + private String hth;//购单号 + private String ghsbm;//供货商--带到出库接口中-用于成本 + private String xhth;//合同号 + private String wlbm;//物料号-炉批号 + private String wph;//物品号 + private String wpmc;//物品名称 + private String wpgg;//物品名称 + private String t;//物品名称 + private String b;//物品名称 + private String l;//物品名称 + + private String zt="01";//状态(01正常99作废) + private String sllsh;//上料流水号(20230322001) + private String zfry;//作废人员 + private String zfrq;//作废日期 + private String lysl="1";//领用张数默认1张 + private String ylzl;//领用重量(KG) + private String kwh;//垛位 + private String kwcs;//垛位层数01/02/03等 + + private String dcCh;//需求船只 + private String dcPl;//需求批量 + private String dcLx;//流向 + private String dcKw;//切割跨位 + private String dcPw;//抛丸位置 + + private String ddlsh;//订单流水号--带到出库接口中-用于成本 + private String ddxh;//订单序号--带到出库接口中-用于成本 + private String wpzt;//物品状态--新增 + private String lrry;//导入人员 + private String lrrq;//导入日期 + + + + public static Sljh ofWithYdjh(DmYdjh ydjh){ + Sljh sljh=new Sljh(); + sljh.dcCh=ydjh.getDcCh(); + sljh.dcPl=ydjh.getDcPl(); + sljh.dcLx=ydjh.getLx(); + sljh.dcKw=ydjh.getKw(); + sljh.dcPw=ydjh.getPw(); + return sljh; + } +} diff --git a/src/main/java/com/dsic/gj_erp/bean/kc/ImCkwpkwp.java b/src/main/java/com/dsic/gj_erp/bean/kc/ImCkwpkwp.java index 5f074f6..5afbd51 100644 --- a/src/main/java/com/dsic/gj_erp/bean/kc/ImCkwpkwp.java +++ b/src/main/java/com/dsic/gj_erp/bean/kc/ImCkwpkwp.java @@ -24,7 +24,9 @@ public class ImCkwpkwp { private String cfcs1;//层数 private String dcCh; + private String dcPl; private String dcFd; + private String dcTh; private String qxkcl;//物品数量 private String wpzt;//ky:可用;dy:代用 diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java index 0837250..2272b3f 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java @@ -72,7 +72,9 @@ public class DmYdjhController { Map itemMap = BeanUtil.beanToMap(item); resultMap.add(itemMap); bcKcxx.forEach(kc->{ - if (item.getDcCh().equals(kc.getDcCh())&&item.getDcFd().equals(kc.getDcFd())){ + if (item.getDcCh().equals(kc.getDcCh()) + &&item.getDcFd().equals(kc.getDcPl()) + &&item.getTzbh().equals(kc.getDcTh())){ itemMap.put("kc",kc); } }); @@ -82,10 +84,7 @@ public class DmYdjhController { } }); }); - - }); - return new ResultBean(resultMap); } diff --git a/src/main/java/com/dsic/gj_erp/jiuzhoumapper/SljhMapper.java b/src/main/java/com/dsic/gj_erp/jiuzhoumapper/SljhMapper.java new file mode 100644 index 0000000..1185f7b --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/jiuzhoumapper/SljhMapper.java @@ -0,0 +1,7 @@ +package com.dsic.gj_erp.jiuzhoumapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.jiuzhou.Sljh; + +public interface SljhMapper extends BaseMapper { +} diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java index ba42585..1dbb206 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java @@ -4,25 +4,31 @@ package com.dsic.gj_erp.service.jhgk.impl; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dsic.gj_erp.bean.jcsj.EmGcrl; -import com.dsic.gj_erp.bean.jcsj.EmSbcnp; +import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.jhgk.DmQfxq; import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmYdjh; +import com.dsic.gj_erp.bean.jiuzhou.Sljh; import com.dsic.gj_erp.bean.pgd.*; import com.dsic.gj_erp.mapper.jhgk.DmYdjhMapper; -import com.dsic.gj_erp.service.jcsj.DmBomService; -import com.dsic.gj_erp.service.jcsj.EmGcrlService; import com.dsic.gj_erp.service.jhgk.DmQfxqService; -import com.dsic.gj_erp.service.jhgk.DmSygdMxService; import com.dsic.gj_erp.service.jhgk.DmYdjhService; +import com.dsic.gj_erp.service.jiuzhou.SljhService; import com.dsic.gj_erp.service.pgd.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - -import java.util.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -49,6 +55,8 @@ public class DmYdjhServiceImpl extends ServiceImpl impleme private PgdPwjhService pwService; @Autowired private PgdQgjhService qgService; + @Autowired + private SljhService sljhService; @Override public List tjydjh() { @@ -58,7 +66,7 @@ public class DmYdjhServiceImpl extends ServiceImpl impleme //3.根据前方需求期,重新为三月滚动明细排产(板),排产后的数据添加到月度计划,并且反写数据到三月滚动明细 // List qfxqList= qfxqService.list(new QueryWrapper().eq("substring(db,0,8) ", DateUtil.format(DateUtil.nextMonth(),"yyyy/MM"))); int i = qfxqService.count(new QueryWrapper() - .eq("substring(xzglxq,0,8) ", DateUtil.format(DateUtil.nextMonth(),"yyyy/MM"))); + .eq("substring(xzglxq,0,8) ", DateUtil.format(DateUtil.nextMonth(), "yyyy/MM"))); if (i < 1) { System.out.println("下月的前方需求信息未导入!"); return null; @@ -130,32 +138,37 @@ public class DmYdjhServiceImpl extends ServiceImpl impleme return map; } + @Resource + private ApplicationEventPublisher publisher; + //下发 派工单状态改为编制 生成零件信息 @Override - public void xf(List ydjhList){ + public void xf(List ydjhList) { //修改状态 - List idList=ydjhList.stream().map(DmYdjh::getId).collect(Collectors.toList()); - if (idList.size()>100){ + List idList = ydjhList.stream().map(DmYdjh::getId).collect(Collectors.toList()); + + if (idList.size() > 100) { List list = idList.subList(idList.size() / 100 * 100, idList.size()); - AtomicInteger index=new AtomicInteger(idList.size()/100+1); - this.update(new UpdateWrapper().set("zt","2") - .in( "id",list) + AtomicInteger index = new AtomicInteger(idList.size() / 100 + 1); + this.update(new UpdateWrapper().set("zt", "2") + .in("id", list) ); baseMapper.xfbc(list); baseMapper.tqlj(list); do { int i = index.decrementAndGet(); - List list1 = idList.subList((index.get()-1)*100, i*100); - this.update(new UpdateWrapper().set("zt","2") - .in( "id",list1) + List list1 = idList.subList((index.get() - 1) * 100, i * 100); + this.update(new UpdateWrapper().set("zt", "2") + .in("id", list1) ); baseMapper.xfbc(list1); baseMapper.tqlj(list1); }while (index.get()>1); + }else { - this.update(new UpdateWrapper().set("zt","2") - .in( "id",idList) + this.update(new UpdateWrapper().set("zt", "2") + .in("id", idList) ); //修改汇总状态 改为 编制 baseMapper.xfbc(idList); @@ -163,6 +176,7 @@ public class DmYdjhServiceImpl extends ServiceImpl impleme baseMapper.tqlj(idList); } + publisher.publishEvent(ydjhList); } } diff --git a/src/main/java/com/dsic/gj_erp/service/jiuzhou/SljhService.java b/src/main/java/com/dsic/gj_erp/service/jiuzhou/SljhService.java new file mode 100644 index 0000000..ffbc54c --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jiuzhou/SljhService.java @@ -0,0 +1,32 @@ +package com.dsic.gj_erp.service.jiuzhou; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.jhgk.DmYdjh; +import com.dsic.gj_erp.bean.jiuzhou.Sljh; +import com.dsic.gj_erp.jiuzhoumapper.SljhMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Slf4j +@Service +public class SljhService extends ServiceImpl { + + @Async + @EventListener + public void save(List slYdjh){ + log.info("开始执行九州接口推送:{}",slYdjh); + List collect = slYdjh.stream().map(Sljh::ofWithYdjh).collect(Collectors.toList()); + log.info("生成九州数据完成:{}",collect); + try { + this.saveBatch(collect); + }catch (Exception e){ + e.printStackTrace(); + } + log.info("推送完成"); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 348e243..f14cdf8 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -13,7 +13,7 @@ spring.mvc.throw-exception-if-no-handler-found=true mybatis-plus.type-aliases-package=com.dsic.gj_erp.bean.* mybatis-plus.mapper-locations = classpath:mappers/*/*.xml -logging.level.com.dsic.gj_erp.mapper=debug +logging.level.com.dsic.gj_erp=debug spring.servlet.multipart.max-file-size=500MB spring.servlet.multipart.max-request-size=500MB diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..bb8cc23 --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,79 @@ + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + UTF-8 + + + + + + + + ERROR + + DENY + + ACCEPT + + + + + + + logs/info.%d{yyyy-MM-dd}.part_%i.log + + 90 + + + + + 2MB + + + + + + + ${FILE_LOG_PATTERN} + UTF-8 + + + + + + + Error + + + + + + + logs/error.%d{yyyy-MM-dd}.part_%i.log + + 90 + + + 2MB + + + + ${FILE_ERROR_PATTERN} + UTF-8 + + + + + + + + +