问题修复15

master
zhaoxiaolin 3 months ago
parent cc4d3f5ca1
commit 97a2b159ec

@ -244,8 +244,11 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
Random random = new Random(); Random random = new Random();
// 计算初始平均值 // 计算初始平均值
int avg = totalSum / count; int avg =0,remainder=0;
int remainder = totalSum % count; if(count!=0){
avg = totalSum / count;
remainder = totalSum % count;
}
// 在平均值附近生成初始值 // 在平均值附近生成初始值
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {

@ -347,8 +347,8 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService {
Map<String, Object> dataParams = new HashMap<>(); Map<String, Object> dataParams = new HashMap<>();
dataParams.put("werks", request.getHeader(key.substring(8)).replace("ds_","")); //dataParams.put("werks", request.getHeader(key.substring(8)).replace("ds_",""));
//dataParams.put("werks","1000"); dataParams.put("werks","1000");
logger.info("白坯手动订单同步:【参数】" + JSONObject.toJSONString(dataParams)); logger.info("白坯手动订单同步:【参数】" + JSONObject.toJSONString(dataParams));
//取>=20230923的sap数据 //取>=20230923的sap数据
R rSapProOrder = remoteSapService.zmesPurwqGet(dataParams);//sap只能同步指定日期的数据 R rSapProOrder = remoteSapService.zmesPurwqGet(dataParams);//sap只能同步指定日期的数据
@ -365,7 +365,7 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String syncSAPbpFunc(List<SapWBDemand> newOrders,String syncUser){ public String syncSAPbpFunc(List<SapWBDemand> newOrders,String syncUser){
List<ProOrder> orders = new ArrayList<>(); List<ProOrder> orders = new ArrayList<>();
ProOrder proOrder = null; ProOrder proOrder = null,proParentOrder = null;
String bpDD = "DD" + DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); String bpDD = "DD" + DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
int m=1; int m=1;
Date nowDate = DateUtils.getNowDate(); Date nowDate = DateUtils.getNowDate();
@ -373,6 +373,7 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService {
if(StringUtils.isNotBlank(sapProOrder.getMatnr())&&StringUtils.isNotBlank(sapProOrder.getMaktx())){ if(StringUtils.isNotBlank(sapProOrder.getMatnr())&&StringUtils.isNotBlank(sapProOrder.getMaktx())){
//工单生产后整个订单就被锁定//订单存在就更新,不存在就插入 //工单生产后整个订单就被锁定//订单存在就更新,不存在就插入
proOrder = new ProOrder(); proOrder = new ProOrder();
proParentOrder = new ProOrder();
proOrder.setPlanFactoryCode(sapProOrder.getWerks()); proOrder.setPlanFactoryCode(sapProOrder.getWerks());
proOrder.setMaterialCode(sapProOrder.getMatnr()); proOrder.setMaterialCode(sapProOrder.getMatnr());
proOrder.setMaterialName(sapProOrder.getMaktx()); proOrder.setMaterialName(sapProOrder.getMaktx());
@ -385,14 +386,33 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService {
proOrder.setCreateBy(syncUser); proOrder.setCreateBy(syncUser);
proOrder.setCreateTime(nowDate); proOrder.setCreateTime(nowDate);
proOrder.setId(IdUtils.fastSimpleUUID()); proOrder.setId(IdUtils.fastSimpleUUID());
proOrder.setStatus("o0"); proOrder.setStatus("o1");
proOrder.setOrderType("white"); proOrder.setOrderType("white");
proOrder.setProdType("white"); proOrder.setProdType("white");
proOrder.setFactoryCode("1000");
int liushuiNum = proWhiteOrderMapper.getTodayMaxNum(proOrder)+(m++); int liushuiNum = proWhiteOrderMapper.getTodayMaxNum(proOrder)+(m++);
String liushuiStr = String.format("%04d", liushuiNum); String liushuiStr = String.format("%04d", liushuiNum);
proOrder.setOrderCode(bpDD + liushuiStr); String porderCode = bpDD + liushuiStr;
proOrder.setOrderCode(porderCode+"-1");
proOrder.setParentOrder(porderCode);
orders.add(proOrder); orders.add(proOrder);
//加一级虚拟母单
proParentOrder.setPlanFactoryCode(sapProOrder.getWerks());
proParentOrder.setQuantity((long)menge);
proParentOrder.setUnit(sapProOrder.getMeins());
proParentOrder.setPlanProDate(sapProOrder.getBedat());
proParentOrder.setPlanComplete(sapProOrder.getBedat());
proParentOrder.setSyncUser(syncUser);
proParentOrder.setCreateBy(syncUser);
proParentOrder.setCreateTime(nowDate);
proParentOrder.setId(IdUtils.fastSimpleUUID());
proParentOrder.setStatus("o1");
proParentOrder.setOrderType("white");
proParentOrder.setProdType("white");
proParentOrder.setFactoryCode("1000");
proParentOrder.setOrderCode(porderCode);
proParentOrder.setParentOrder("0");
orders.add(proParentOrder);
} }
} }
int snum = proOrderWorkorderMapper.bpAddBatch(orders); int snum = proOrderWorkorderMapper.bpAddBatch(orders);

@ -919,18 +919,18 @@
<insert id="bpAddBatch"> <insert id="bpAddBatch">
INSERT INTO pro_order ( INSERT INTO pro_order (
id,plan_factory_code,order_type,order_code, id,plan_factory_code,order_type,order_code,
prod_code,prod_desc, prod_code,prod_desc,factory_code,
quantity,unit, quantity,unit,status,parent_order,
plan_pro_date, plan_complete, plan_pro_date, plan_complete,
create_by,create_time create_by,create_time,prod_type
)VALUES )VALUES
<foreach collection="list" item="d" index="index" separator=","> <foreach collection="list" item="d" index="index" separator=",">
( (
#{d.id},#{d.planFactoryCode},#{d.orderType},#{d.orderCode}, #{d.id},#{d.planFactoryCode},#{d.orderType},#{d.orderCode},
#{d.materialCode},#{d.materialName}, #{d.materialCode},#{d.materialName},#{d.factoryCode},
#{d.quantity},#{d.unit}, #{d.quantity},#{d.unit},#{d.status},#{d.parentOrder},
#{d.planProDate},#{d.planComplete}, #{d.planProDate},#{d.planComplete},
#{d.createBy},#{d.createTime} #{d.createBy},#{d.createTime},#{d.prodType}
) )
</foreach> </foreach>
</insert> </insert>

@ -60,7 +60,7 @@
<if test="prodType != null and prodType != ''">and prod_type = #{prodType}</if> <if test="prodType != null and prodType != ''">and prod_type = #{prodType}</if>
<if test="prodSpc != null and prodSpc != ''">and prod_spc = #{prodSpc}</if> <if test="prodSpc != null and prodSpc != ''">and prod_spc = #{prodSpc}</if>
<if test="planDateStart != null ">and CONVERT(varchar(10),plan_pro_date, 120) >= '${planDateStart}'</if> <if test="planDateStart != null ">and CONVERT(varchar(10),plan_pro_date, 120) >= '${planDateStart}'</if>
<if test="planDateEnd != null ">and '${planDateEnd}%' >= CONVERT(varchar(10),plan_pro_date, 120)</if> <if test="planDateEnd != null ">and '${planDateEnd}' >= CONVERT(varchar(10),plan_pro_date, 120)</if>
</where> </where>
and prod_type = 'white' and del_flag = '0' and prod_type = 'white' and del_flag = '0'
ORDER BY plan_pro_date DESC , order_code ASC ORDER BY plan_pro_date DESC , order_code ASC

Loading…
Cancel
Save