src/main/java/com/zy/asrs/controller/OpenController.java
@@ -52,10 +52,10 @@ @RequestBody(required = false) List<MatSyncParam> param, HttpServletRequest request){ auth(appkey, param, request); // if (Cools.isEmpty(param)) { // return R.parse(BaseRes.PARAM); // } // openService.syncMat(param); if (Cools.isEmpty(param)) { return R.parse(BaseRes.PARAM); } openService.check(param); return R.ok(); } src/main/java/com/zy/asrs/entity/CheckDetl.java
New file @@ -0,0 +1,50 @@ package com.zy.asrs.entity; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableName; import com.core.common.Cools; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @TableName("asr_check_detl") @ExcelIgnoreUnannotated public class CheckDetl implements Serializable { @ApiModelProperty(value= "数量") @ExcelProperty("数量") private Double anfme; @ApiModelProperty(value= "商品编号") @ExcelProperty("商品编号") private String matnr; @ApiModelProperty(value= "商品名称") @ExcelProperty("商品名称") private String maktx; @ApiModelProperty(value= "规格") @ExcelProperty("规格") private String specs; @ApiModelProperty(value= "批号") @ExcelProperty("批号") private String batch; @ApiModelProperty(value= "添加时间") @TableField("create_time") private Date createTime; public String getCreateTime$(){ if (Cools.isEmpty(this.createTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } } src/main/java/com/zy/asrs/mapper/CheckDetlMapper.java
New file @@ -0,0 +1,11 @@ package com.zy.asrs.mapper; import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.asrs.entity.CheckDetl; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Mapper @Repository public interface CheckDetlMapper extends BaseMapper<CheckDetl> { } src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -40,6 +40,7 @@ List<String> selectSameDetlTodayBatch(@Param("matnr") String matnr,@Param("batch") String batch, @Param("start") Integer start, @Param("end") Integer end); List<LocDetl> getStockStatis(Map<String, Object> map); Double getAnfmeByMatnr(@Param("matnr") String matnr); Integer getStockStatisCount(Map<String, Object> map); src/main/java/com/zy/asrs/service/CheckDetlService.java
New file @@ -0,0 +1,7 @@ package com.zy.asrs.service; import com.baomidou.mybatisplus.service.IService; import com.zy.asrs.entity.CheckDetl; public interface CheckDetlService extends IService<CheckDetl> { } src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -69,4 +69,6 @@ List<Map<String, Object>> selectLocDetlUnilateralMoveShuttleMap(Integer crnNo); List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr,String batch,String grade,Integer crnNo); Double getAnfmeByMatnr(String matnr); } src/main/java/com/zy/asrs/service/OpenService.java
@@ -43,4 +43,9 @@ * @param param */ void syncMat(List<MatSyncParam> param); /** * 检查erp与立库系统物料数量 */ void check(List<MatSyncParam> param); } src/main/java/com/zy/asrs/service/impl/CheckDetlServiceImpl.java
New file @@ -0,0 +1,12 @@ package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.zy.asrs.entity.CheckDetl; import com.zy.asrs.mapper.CheckDetlMapper; import com.zy.asrs.service.CheckDetlService; import org.springframework.stereotype.Service; @Service public class CheckDetlServiceImpl extends ServiceImpl<CheckDetlMapper, CheckDetl> implements CheckDetlService { } src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -6,6 +6,7 @@ import com.zy.asrs.entity.result.StockVo; import com.zy.asrs.mapper.LocDetlMapper; import com.zy.asrs.service.LocDetlService; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import java.util.List; @@ -63,6 +64,11 @@ } @Override public Double getAnfmeByMatnr(String matnr){ return this.baseMapper.getAnfmeByMatnr(matnr); } @Override public Double getSumAnfme(String matnr) { return this.baseMapper.selectSumAnfmeByMatnr(matnr); } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -18,7 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.zy.asrs.entity.CheckDetl; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -48,6 +48,8 @@ private TagService tagService; @Autowired private TagMapper tagMapper; @Autowired private CheckDetlService checkDetlService; @Override @Transactional @@ -601,6 +603,46 @@ } } } @Override @Transactional public void check(List<MatSyncParam> paramList){ if (Cools.isEmpty(paramList)) { throw new CoolException("上报数据为空"); } for (MatSyncParam param : paramList) { if (Cools.isEmpty(param.getData()) || param.getData().isEmpty()) { throw new CoolException("物料数据为空"); } for (MatSyncParam.MatParam matParam : param.getData()) { if (Cools.isEmpty(matParam.getMatnr())) { throw new CoolException("商品编码为空"); } Double LKAnfme = locDetlService.getAnfmeByMatnr(matParam.getMatnr()); if (LKAnfme == null) { LKAnfme = 0.0; } // 计算差值 double diff = matParam.getAnfme() - LKAnfme; if (diff != 0) { CheckDetl checkDetl = new CheckDetl(); checkDetl.setAnfme(diff); //这里记录差值 checkDetl.setMatnr(matParam.getMatnr()); checkDetl.setMaktx(matParam.getMaktx()); checkDetl.setSpecs(matParam.getSpecs()); checkDetl.setCreateTime(new Date()); checkDetlService.insert(checkDetl); // 插入差异记录 } } } } src/main/resources/mapper/CheckDetlMapper.xml
New file @@ -0,0 +1,19 @@ <?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.zy.asrs.mapper.CheckDetlMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.CheckDetl"> <result column="anfme" property="anfme"/> <result column="matnr" property="matnr"/> <result column="maktx" property="maktx"/> <result column="specs" property="specs"/> <result column="batch" property="batch"/> <result column="create_time" property="createTime"/> </resultMap> </mapper> src/main/resources/mapper/LocDetlMapper.xml
@@ -150,6 +150,14 @@ ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) </select> <select id="getAnfmeByMatnr" resultType="com.zy.asrs.entity.LocDetl"> select sum(a.anfme) as anfme from asr_loc_detl a where matnr = #{matnr} </select> <select id="getStockStatisCount" parameterType="java.util.Map" resultType="java.lang.Integer"> select count(1) as count from (