物料同步
This commit is contained in:
parent
dc527fd8db
commit
cf814c36d9
|
@ -1,7 +1,9 @@
|
|||
package com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.u8.base.inventory.entity.InventoryEntity;
|
||||
|
||||
|
@ -17,6 +19,6 @@ import java.util.List;
|
|||
**/
|
||||
public interface IZjMaterielSynchronizationEventDao extends IBaseDao<ZjMaterielSynchronizationEventEntity, String> {
|
||||
|
||||
List<InventoryEntity> queryInventoryEntity(List<ZjMaterielSynchronizationEventEntity> list,String dataSourceCode);
|
||||
List<InventoryEntity> queryInventoryEntity(ZjMaterielSynchronizationEventDto entity);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
package com.hzya.frame.plugin.zjmaterielsynchronizationevent.dao.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.hzya.frame.basedao.dao.MybatisGenericDao;
|
||||
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.seeyon.entity.SeeyonEntity;
|
||||
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 {
|
||||
|
||||
@Override
|
||||
@DS("#dataSourceCode")
|
||||
public List<InventoryEntity> queryInventoryEntity(List<ZjMaterielSynchronizationEventEntity> list,String dataSourceCode) {
|
||||
return (List<InventoryEntity>) super.selectList(getSqlIdPrifx() + "queryInventoryEntity",list);
|
||||
@DS("#entity.dataSourceCode")
|
||||
public List<InventoryEntity> queryInventoryEntity(ZjMaterielSynchronizationEventDto entity) {
|
||||
return (List<InventoryEntity>) super.selectList(getSqlIdPrifx() + "queryInventoryEntity",entity);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -16,15 +16,18 @@
|
|||
|
||||
|
||||
<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
|
||||
*
|
||||
from Inventory
|
||||
where cInvCode in
|
||||
<foreach item="item" index="index" collection="list"
|
||||
open="(" separator="," close=")">
|
||||
#{item.field0043code}
|
||||
</foreach>
|
||||
<trim prefix="where" prefixOverrides="and">
|
||||
and cInvCode in
|
||||
<if test="zjMaterielSynchronizationEventEntities != null and zjMaterielSynchronizationEventEntities.size >0 ">
|
||||
<foreach item="ids" collection="zjMaterielSynchronizationEventEntities" open="(" separator="," close=")">
|
||||
#{ids.field0043code}
|
||||
</foreach>
|
||||
</if>
|
||||
</trim>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
@ -3,8 +3,10 @@ package com.hzya.frame.plugin.zjmaterielsynchronizationevent.service.impl;
|
|||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||
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.service.IZjMaterielSynchronizationEventService;
|
||||
import com.hzya.frame.u8.base.inventory.dao.IInventoryDao;
|
||||
import com.hzya.frame.u8.base.inventory.entity.InventoryEntity;
|
||||
import com.hzya.frame.web.entity.BaseResult;
|
||||
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 java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
||||
|
@ -34,6 +39,8 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
|
|||
this.dao = zjMaterielSynchronizationEventDao;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private IInventoryDao inventoryDao;
|
||||
private String zjoa = "zjoa";
|
||||
private String zju8 = "zju8";
|
||||
|
||||
|
@ -49,8 +56,8 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
|
|||
JSONObject reqJson = new JSONObject();
|
||||
JSONObject jsonStr = requestJson.getJSONObject("jsonStr");
|
||||
JSONObject businessDataStr = jsonStr.getJSONObject("businessDataStr");
|
||||
String formAppId = requestJson.getString("formAppId");
|
||||
String eventType = requestJson.getString("eventType");
|
||||
String formAppId = jsonStr.getString("formAppId");
|
||||
String eventType = jsonStr.getString("eventType");
|
||||
switch (eventType) {
|
||||
case "onBeforeStart"://发起前事件,验证物料重复
|
||||
String formmain_id = getFormmain_id(businessDataStr);
|
||||
|
@ -114,6 +121,22 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
|
|||
* @return void
|
||||
**/
|
||||
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++;
|
||||
}
|
||||
}
|
||||
if(entity.getField0018code() == null || "".equals(entity.getField0018code())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的申请原因为空");
|
||||
}
|
||||
//if(entity.getField0018code() == null || "".equals(entity.getField0018code())){
|
||||
// return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的申请原因为空");
|
||||
//}
|
||||
if("修改".equals(entity.getField0018code())){
|
||||
if(entity.getField0005() == null || "".equals(entity.getField0005())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的货品编码为空");
|
||||
}
|
||||
}
|
||||
if(flag){
|
||||
if(entity.getField0045() == null || "".equals(entity.getField0045())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的货品代码为空");
|
||||
}
|
||||
}
|
||||
if(flag){
|
||||
if(entity.getField0008code() == null || "".equals(entity.getField0008code())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的品牌为空");
|
||||
}
|
||||
}
|
||||
if(flag){
|
||||
if(entity.getField0034code() == null || "".equals(entity.getField0034code())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的客户名为空");
|
||||
}
|
||||
}
|
||||
if(flag){
|
||||
if(entity.getField0012code() == null || "".equals(entity.getField0012code())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的优选等级为空");
|
||||
}
|
||||
}
|
||||
if(flag){
|
||||
if(entity.getField0039() == null || "".equals(entity.getField0039())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的开发号为空");
|
||||
}
|
||||
}
|
||||
if(flag){
|
||||
if(entity.getField0042code() == null || "".equals(entity.getField0042code())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的物料属性为空");
|
||||
}
|
||||
}
|
||||
if(flag){
|
||||
if(entity.getField0022code() == null || "".equals(entity.getField0022code())){
|
||||
return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的是否委外为空");
|
||||
}
|
||||
}
|
||||
//if(flag){
|
||||
// if(entity.getField0045() == null || "".equals(entity.getField0045())){
|
||||
// return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的货品代码为空");
|
||||
// }
|
||||
//}
|
||||
//if(flag){
|
||||
// if(entity.getField0008code() == null || "".equals(entity.getField0008code())){
|
||||
// return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的品牌为空");
|
||||
// }
|
||||
//}
|
||||
//if(flag){
|
||||
// if(entity.getField0034code() == null || "".equals(entity.getField0034code())){
|
||||
// return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的客户名为空");
|
||||
// }
|
||||
//}
|
||||
//if(flag){
|
||||
// if(entity.getField0012code() == null || "".equals(entity.getField0012code())){
|
||||
// return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的优选等级为空");
|
||||
// }
|
||||
//}
|
||||
//if(flag){
|
||||
// if(entity.getField0039() == null || "".equals(entity.getField0039())){
|
||||
// return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的开发号为空");
|
||||
// }
|
||||
//}
|
||||
//if(flag){
|
||||
// if(entity.getField0042code() == null || "".equals(entity.getField0042code())){
|
||||
// return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的物料属性为空");
|
||||
// }
|
||||
//}
|
||||
//if(flag){
|
||||
// if(entity.getField0022code() == null || "".equals(entity.getField0022code())){
|
||||
// return BaseResult.getFailureMessageEntity("序号为"+entity.getField0004()+"明细行的是否委外为空");
|
||||
// }
|
||||
//}
|
||||
//物料编码和货品代码不为空时,判断两个是否一样
|
||||
if(entity.getField0005() != null && !"".equals(entity.getField0005())
|
||||
&& entity.getField0045() != null && !"".equals(entity.getField0045())){
|
||||
|
@ -246,7 +269,10 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
|
|||
}
|
||||
}
|
||||
//查询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){
|
||||
return BaseResult.getFailureMessageEntity("物料分类在U8中不存在");
|
||||
}
|
||||
|
@ -264,6 +290,65 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService<ZjMat
|
|||
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("校验成功");
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
|||
<?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.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">
|
||||
<!--无备注 -->
|
||||
<result property="cInvCode" column="cInvCode" />
|
||||
|
|
Loading…
Reference in New Issue