物料同步

This commit is contained in:
lvleigang 2025-03-20 17:04:14 +08:00
parent dc527fd8db
commit cf814c36d9
7 changed files with 175 additions and 53 deletions

View File

@ -1,7 +1,9 @@
package com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao; package com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.basedao.dao.IBaseDao; import com.hzya.frame.basedao.dao.IBaseDao;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventDto;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventEntity; import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventEntity;
import com.hzya.frame.u8.base.inventory.entity.InventoryEntity; import com.hzya.frame.u8.base.inventory.entity.InventoryEntity;
@ -17,6 +19,6 @@ import java.util.List;
**/ **/
public interface IZjMaterielSynchronizationEventDao extends IBaseDao<ZjMaterielSynchronizationEventEntity, String> { public interface IZjMaterielSynchronizationEventDao extends IBaseDao<ZjMaterielSynchronizationEventEntity, String> {
List<InventoryEntity> queryInventoryEntity(List<ZjMaterielSynchronizationEventEntity> list,String dataSourceCode); List<InventoryEntity> queryInventoryEntity(ZjMaterielSynchronizationEventDto entity);
} }

View File

@ -1,8 +1,10 @@
package com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao.impl; package com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.hzya.frame.basedao.dao.MybatisGenericDao; import com.hzya.frame.basedao.dao.MybatisGenericDao;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao.IZjMaterielSynchronizationEventDao; import com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao.IZjMaterielSynchronizationEventDao;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventDto;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventEntity; import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventEntity;
import com.hzya.frame.seeyon.entity.SeeyonEntity; import com.hzya.frame.seeyon.entity.SeeyonEntity;
import com.hzya.frame.u8.base.inventory.entity.InventoryEntity; import com.hzya.frame.u8.base.inventory.entity.InventoryEntity;
@ -20,9 +22,9 @@ import java.util.List;
public class ZjMaterielSynchronizationEventDaoImpl extends MybatisGenericDao<ZjMaterielSynchronizationEventEntity, String> implements IZjMaterielSynchronizationEventDao { public class ZjMaterielSynchronizationEventDaoImpl extends MybatisGenericDao<ZjMaterielSynchronizationEventEntity, String> implements IZjMaterielSynchronizationEventDao {
@Override @Override
@DS("#dataSourceCode") @DS("#entity.dataSourceCode")
public List<InventoryEntity> queryInventoryEntity(List<ZjMaterielSynchronizationEventEntity> list,String dataSourceCode) { public List<InventoryEntity> queryInventoryEntity(ZjMaterielSynchronizationEventDto entity) {
return (List<InventoryEntity>) super.selectList(getSqlIdPrifx() + "queryInventoryEntity",list); return (List<InventoryEntity>) super.selectList(getSqlIdPrifx() + "queryInventoryEntity",entity);
} }
} }

View File

@ -0,0 +1,30 @@
package com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity;
import com.hzya.frame.web.entity.BaseEntity;
import java.util.List;
/****
* 物料档案实体类
* @content:
* @author 👻👻👻👻👻👻👻👻 gjh
* @date 2025-03-03 10:53
* @param
* @return
**/
public class ZjMaterielSynchronizationEventDto extends BaseEntity {
private List<ZjMaterielSynchronizationEventEntity> zjMaterielSynchronizationEventEntities;
public List<ZjMaterielSynchronizationEventEntity> getZjMaterielSynchronizationEventEntities() {
return zjMaterielSynchronizationEventEntities;
}
public void setZjMaterielSynchronizationEventEntities(List<ZjMaterielSynchronizationEventEntity> zjMaterielSynchronizationEventEntities) {
this.zjMaterielSynchronizationEventEntities = zjMaterielSynchronizationEventEntities;
}
}

View File

@ -16,15 +16,18 @@
<select id="queryInventoryEntity" resultType="com.hzya.frame.u8.base.inventory.entity.InventoryEntity" <select id="queryInventoryEntity" resultType="com.hzya.frame.u8.base.inventory.entity.InventoryEntity"
parameterType = "com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventEntity"> parameterType = "com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventDto">
select select
* *
from Inventory from Inventory
where cInvCode in <trim prefix="where" prefixOverrides="and">
<foreach item="item" index="index" collection="list" and cInvCode in
open="(" separator="," close=")"> <if test="zjMaterielSynchronizationEventEntities != null and zjMaterielSynchronizationEventEntities.size >0 ">
#{item.field0043code} <foreach item="ids" collection="zjMaterielSynchronizationEventEntities" open="(" separator="," close=")">
#{ids.field0043code}
</foreach> </foreach>
</if>
</trim>
</select> </select>
</mapper> </mapper>

View File

@ -3,8 +3,10 @@ package com.hzya.frame.plugin.zjmaterielsynchronizationevent.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.basedao.service.impl.BaseService; import com.hzya.frame.basedao.service.impl.BaseService;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao.IZjMaterielSynchronizationEventDao; import com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao.IZjMaterielSynchronizationEventDao;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventDto;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventEntity; import com.hzya.frame.plugin.zjmaterielsynchronizationevent.entity.ZjMaterielSynchronizationEventEntity;
import com.hzya.frame.plugin.zjmaterielsynchronizationevent.service.IZjMaterielSynchronizationEventService; import com.hzya.frame.plugin.zjmaterielsynchronizationevent.service.IZjMaterielSynchronizationEventService;
import com.hzya.frame.u8.base.inventory.dao.IInventoryDao;
import com.hzya.frame.u8.base.inventory.entity.InventoryEntity; import com.hzya.frame.u8.base.inventory.entity.InventoryEntity;
import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.BaseResult;
import com.hzya.frame.web.entity.JsonResultEntity; import com.hzya.frame.web.entity.JsonResultEntity;
@ -12,7 +14,10 @@ import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -34,6 +39,8 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
this.dao = zjMaterielSynchronizationEventDao; this.dao = zjMaterielSynchronizationEventDao;
} }
@Autowired
private IInventoryDao inventoryDao;
private String zjoa = "zjoa"; private String zjoa = "zjoa";
private String zju8 = "zju8"; private String zju8 = "zju8";
@ -49,8 +56,8 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
JSONObject reqJson = new JSONObject(); JSONObject reqJson = new JSONObject();
JSONObject jsonStr = requestJson.getJSONObject("jsonStr"); JSONObject jsonStr = requestJson.getJSONObject("jsonStr");
JSONObject businessDataStr = jsonStr.getJSONObject("businessDataStr"); JSONObject businessDataStr = jsonStr.getJSONObject("businessDataStr");
String formAppId = requestJson.getString("formAppId"); String formAppId = jsonStr.getString("formAppId");
String eventType = requestJson.getString("eventType"); String eventType = jsonStr.getString("eventType");
switch (eventType) { switch (eventType) {
case "onBeforeStart"://发起前事件验证物料重复 case "onBeforeStart"://发起前事件验证物料重复
String formmain_id = getFormmain_id(businessDataStr); String formmain_id = getFormmain_id(businessDataStr);
@ -114,6 +121,22 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
* @return void * @return void
**/ **/
private void saveMaterielToU8(List<ZjMaterielSynchronizationEventEntity> list) { private void saveMaterielToU8(List<ZjMaterielSynchronizationEventEntity> list) {
for (int i = 0; i < list.size(); i++) {
ZjMaterielSynchronizationEventEntity entity = list.get(i);
InventoryEntity inventoryEntity = new InventoryEntity();
inventoryEntity.setAcc_name("UFDATA_998_2014");
inventoryEntity.setCacc_id("998");
if("新增".equals(entity.getField0018code())){
}else if("增加替代".equals(entity.getField0018code())){
}else if("升级".equals(entity.getField0018code())){
}else if("修改".equals(entity.getField0018code())){
}
}
} }
/** /**
@ -177,49 +200,49 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
num1++; num1++;
} }
} }
if(entity.getField0018code() == null || "".equals(entity.getField0018code())){ //if(entity.getField0018code() == null || "".equals(entity.getField0018code())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的申请原因为空"); // return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的申请原因为空");
} //}
if("修改".equals(entity.getField0018code())){ if("修改".equals(entity.getField0018code())){
if(entity.getField0005() == null || "".equals(entity.getField0005())){ if(entity.getField0005() == null || "".equals(entity.getField0005())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的货品编码为空"); return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的货品编码为空");
} }
} }
if(flag){ //if(flag){
if(entity.getField0045() == null || "".equals(entity.getField0045())){ // if(entity.getField0045() == null || "".equals(entity.getField0045())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的货品代码为空"); // return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的货品代码为空");
} // }
} //}
if(flag){ //if(flag){
if(entity.getField0008code() == null || "".equals(entity.getField0008code())){ // if(entity.getField0008code() == null || "".equals(entity.getField0008code())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的品牌为空"); // return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的品牌为空");
} // }
} //}
if(flag){ //if(flag){
if(entity.getField0034code() == null || "".equals(entity.getField0034code())){ // if(entity.getField0034code() == null || "".equals(entity.getField0034code())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的客户名为空"); // return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的客户名为空");
} // }
} //}
if(flag){ //if(flag){
if(entity.getField0012code() == null || "".equals(entity.getField0012code())){ // if(entity.getField0012code() == null || "".equals(entity.getField0012code())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的优选等级为空"); // return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的优选等级为空");
} // }
} //}
if(flag){ //if(flag){
if(entity.getField0039() == null || "".equals(entity.getField0039())){ // if(entity.getField0039() == null || "".equals(entity.getField0039())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的开发号为空"); // return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的开发号为空");
} // }
} //}
if(flag){ //if(flag){
if(entity.getField0042code() == null || "".equals(entity.getField0042code())){ // if(entity.getField0042code() == null || "".equals(entity.getField0042code())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的物料属性为空"); // return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的物料属性为空");
} // }
} //}
if(flag){ //if(flag){
if(entity.getField0022code() == null || "".equals(entity.getField0022code())){ // if(entity.getField0022code() == null || "".equals(entity.getField0022code())){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的是否委外为空"); // return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的是否委外为空");
} // }
} //}
//物料编码和货品代码不为空时判断两个是否一样 //物料编码和货品代码不为空时判断两个是否一样
if(entity.getField0005() != null && !"".equals(entity.getField0005()) if(entity.getField0005() != null && !"".equals(entity.getField0005())
&& entity.getField0045() != null && !"".equals(entity.getField0045())){ && entity.getField0045() != null && !"".equals(entity.getField0045())){
@ -246,7 +269,10 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
} }
} }
//查询u8物料 //查询u8物料
List<InventoryEntity> inventoryEntities = zjMaterielSynchronizationEventDao.queryInventoryEntity(list,zju8); ZjMaterielSynchronizationEventDto querywl = new ZjMaterielSynchronizationEventDto();
querywl.setDataSourceCode(zju8);
querywl.setZjMaterielSynchronizationEventEntities(list);
List<InventoryEntity> inventoryEntities = zjMaterielSynchronizationEventDao.queryInventoryEntity(querywl);
if(inventoryEntities == null || inventoryEntities.size() == 0){ if(inventoryEntities == null || inventoryEntities.size() == 0){
return BaseResult.getFailureMessageEntity("物料分类在U8中不存在"); return BaseResult.getFailureMessageEntity("物料分类在U8中不存在");
} }
@ -264,6 +290,65 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的物料分类在U8中不存在"); return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的物料分类在U8中不存在");
} }
} }
// 新增
// A6789分类时判断存货分类和规格型号在物料分类中是否存在存在不允许新增
// 145分类时判断规格型号是否存在存在不允许新增
// 其他类型直接返回提示类型错误
// 修改判断
// 物料编码判断U8是否存在不存在的提示
if(flag){
Integer xzCount = 0;
Set<String> js = new HashSet<>();
for (int i = 0; i < list.size(); i++) {
ZjMaterielSynchronizationEventEntity entity = list.get(i);
if("修改".equals(entity.getField0018code())){
//查询u8物料
InventoryEntity queryCz = new InventoryEntity();
queryCz.setDataSourceCode(zju8);
queryCz.setcInvCode(entity.getField0005());
List<InventoryEntity> queryCzList = inventoryDao.query(queryCz);
if(queryCzList == null || queryCzList.size() == 0 ){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行修改的物料编码在U8中不存在");
}
}else {//新增/增加替代/升级
xzCount++;
if(entity.getField0043code().startsWith("a")
|| entity.getField0043code().startsWith("6")
|| entity.getField0043code().startsWith("7")
|| entity.getField0043code().startsWith("8")
|| entity.getField0043code().startsWith("9")){
//查询u8物料
InventoryEntity queryCz = new InventoryEntity();
queryCz.setDataSourceCode(zju8);
queryCz.setcInvCCode(entity.getField0043code());//存货分类/存货大类编码
queryCz.setcInvStd(entity.getField0007());//规格型号
List<InventoryEntity> queryCzList = inventoryDao.query(queryCz);
if(queryCzList != null && queryCzList.size() > 0 ){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行"+entity.getField0018code()+"的存货分类和规格型号已存在");
}
js.add(entity.getField0043code()+entity.getField0007());
}else if(entity.getField0043code().startsWith("1")
|| entity.getField0043code().startsWith("4")
|| entity.getField0043code().startsWith("5")){
//查询u8物料
InventoryEntity queryCz = new InventoryEntity();
queryCz.setDataSourceCode(zju8);
queryCz.setcInvStd(entity.getField0007());//规格型号
List<InventoryEntity> queryCzList = inventoryDao.query(queryCz);
if(queryCzList != null && queryCzList.size() > 0 ){
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行"+entity.getField0018code()+"的规格型号已存在");
}
js.add(entity.getField0007());
}else {
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行"+entity.getField0018code()+"的物料中类不正确");
}
}
}
if(js.size() != xzCount ){
return BaseResult.getFailureMessageEntity("新增/增加替代/升级的明细行存货分类和规格型号或者规格型号存在重复");
}
}
return BaseResult.getSuccessMessageEntity("校验成功"); return BaseResult.getSuccessMessageEntity("校验成功");
} }

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzya.frame.u8.base.inventory.entity.InventoryEntity"> <mapper namespace="com.hzya.frame.u8.base.inventory.dao.impl.InventoryDaoImpl">
<resultMap id="get-InventoryEntity-result" type="com.hzya.frame.u8.base.inventory.entity.InventoryEntity"> <resultMap id="get-InventoryEntity-result" type="com.hzya.frame.u8.base.inventory.entity.InventoryEntity">
<!--无备注 --> <!--无备注 -->
<result property="cInvCode" column="cInvCode" /> <result property="cInvCode" column="cInvCode" />