rev:根据实际排产场景,修改销售订单内容

This commit is contained in:
2023-07-17 16:29:29 +08:00
parent a020439a97
commit 4a0a36c091
18 changed files with 365 additions and 256 deletions

View File

@@ -3,25 +3,16 @@ package org.nl.common.utils;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.nl.common.publish.event.PublishEvent;
import org.nl.config.thread.ThreadPoolExecutorUtil;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.system_manage.service.ql.IPdmQlOptionService;
import org.nl.wms.system_manage.service.ql.dao.PdmQlOption;
import org.nl.wms.system_manage.service.ql.dto.OptionRecordQuery;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ThreadPoolExecutor;
/*

View File

@@ -0,0 +1,45 @@
package org.nl.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 自动填充公共字段
*/
@Component
public class MetaDataHandler implements MetaObjectHandler
{
/**
* 插入操作自动填充
*/
@Override
public void insertFill(MetaObject metaObject)
{
//不一定有修改或删除字段,比如交易记录不能删除也不能修改
if(metaObject.hasSetter("is_delete"))
{
metaObject.setValue("is_delete", 0);
}
if(metaObject.hasSetter("update_time"))
{
metaObject.setValue("update_time", new Date());
}
metaObject.setValue("create_time", new Date());
}
/**
* 更新操作自动填充
*/
@Override
public void updateFill(MetaObject metaObject)
{
if(metaObject.hasSetter("update_time"))
{
metaObject.setValue("update_time", new Date());
}
}
}

View File

@@ -137,7 +137,7 @@ public class WmsToSapServiceImpl implements WmsToSapService {
}
}
sale_jo.setSale_code(row.getString("Vbeln"));
sale_jo.setSeq_no(row.getString("Posnr"));
sale_jo.setSeq_no(row.getInteger("Posnr"));
sale_jo.setSale_type(row.getString("Auart"));
String material_code = row.getString("Matnr").replaceAll("^(0+)", "");
//获取物料对应的物料标识
@@ -173,11 +173,10 @@ public class WmsToSapServiceImpl implements WmsToSapService {
} else {
sale_jo.setQty_unit_id(unit_jo.getMeasure_unit_id());
}
sale_jo.setPlandeliver_date(row.getString("Edatu"));
//sale_jo.setPlandeliver_date(row.getString("Edatu"));
sale_jo.setCreate_id(SecurityUtils.getCurrentUserId());
sale_jo.setCreate_time(DateUtil.now());
sale_jo.setCreate_time(new Date());
sale_jo.setCreate_name(SecurityUtils.getCurrentNickName());
sale_jo.setIs_delete("0");
if (need_update) {
saleOrderService.updateById(sale_jo);
} else {

View File

@@ -57,7 +57,6 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{
@Qualifier("meshandlerPool")
private ThreadPoolExecutor pool;
private final RedisUtils redisUtils;
@Autowired
private IMdMeMaterialbaseService materialbaseService;
@Autowired
@@ -163,11 +162,6 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
wo.insert(json);
//子线程异步更新redis数据
CompletableFuture<Void> updateMaterToRedis = CompletableFuture.runAsync(this::updateRedis, pool);
updateMaterToRedis.exceptionally((e) -> {
throw new BadRequestException("物料信息缓存redis失败");
});
}
@Override
@@ -179,11 +173,6 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{
materialbase.setUpdate_id(SecurityUtils.getCurrentUserId());
materialbase.setUpdate_name(SecurityUtils.getCurrentNickName());
materialbaseService.updateById(materialbase);
//子线程异步更新redis数据
CompletableFuture<Void> updateMaterToRedis = CompletableFuture.runAsync(this::updateRedis, pool);
updateMaterToRedis.exceptionally((e) -> {
throw new BadRequestException("物料信息缓存redis失败");
});
}
@Override
@@ -201,11 +190,6 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{
param.put("update_time", DateUtil.now());
wo.update(param);
}
//子线程异步更新redis数据
CompletableFuture<Void> updateMaterToRedis = CompletableFuture.runAsync(this::updateRedis, pool);
updateMaterToRedis.exceptionally((e) -> {
throw new BadRequestException("物料信息缓存redis失败");
});
}
@Override
@@ -328,11 +312,6 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{
}
}
result.put("message", "导入成功!一共导入:" + rows.size() + "条数据!");
//子线程异步更新redis数据
CompletableFuture<Void> updateMaterToRedis = CompletableFuture.runAsync(this::updateRedis, pool);
updateMaterToRedis.exceptionally((e) -> {
throw new BadRequestException("物料信息缓存redis失败");
});
return new JSONObject();
}
@@ -353,9 +332,5 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{
return newParentArray;
}
public void updateRedis() {
JSONArray materialJsonArray = WQL.getWO("PDA_QUERY").addParam("flag", "5").process().getResultJSONArray(0);
List<MaterialDto> finalMaterialList = materialJsonArray.toJavaList(MaterialDto.class);
redisUtils.set("hl:cacheLineHand:materialBase:mid", finalMaterialList);
}
}

View File

@@ -58,6 +58,10 @@ public class MpsSaleOrderController {
}
/**
*导入订单
*/
@Log("导入订单")
@PostMapping("/excelImport")
public ResponseEntity<Object> excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
iMpsSaleOrderService.excelImport(file,request);

View File

@@ -2,13 +2,12 @@ package org.nl.wms.mps_manage.saleorder.service.dao;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -25,145 +24,198 @@ import lombok.EqualsAndHashCode;
@TableName("mps_sale_order")
public class MpsSaleOrder implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 销售单标识
*/
@TableId
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "/**销售单标识*/")
private String sale_id;
/**
* 销售单号
*/
@ApiModelProperty(value = "/**销售单号*/")
private String sale_code;
/**
* 明细序号
*/
private String seq_no;
/**
* aps映射订单编码
*/
private String aps_sale_code;
/**
* aps映射订单类型
*/
private String aps_sale_type;
/**
* aps映射订单状态
*/
private String aps_status;
/**
* 物料编码
*/
private String material_code;
@ApiModelProperty(value = "/**明细序号*/")
private Integer seq_no;
/**
* 销售单类型
*/
@ApiModelProperty(value = "/**销售单类型*/")
private String sale_type;
/**
* 物料标识
*/
@ApiModelProperty(value = "/**物料标识*/")
private String material_id;
/**
* 状态
*/
@ApiModelProperty(value = "/**状态*/")
private String status;
/**
* 销售数量
*/
@ApiModelProperty(value = "/**销售数量*/")
private BigDecimal sale_qty;
/**
* 生产顺序
*/
@ApiModelProperty(value = "/**生产顺序*/")
private Integer produce_seq;
/**
* 客户标识
*/
@ApiModelProperty(value = "/**客户标识*/")
private String cust_id;
/**
* 客户编码
*/
@ApiModelProperty(value = "/**客户编码*/")
private String cust_code;
/**
* 客户名称
*/
@ApiModelProperty(value = "/**客户名称*/")
private String cust_name;
/**
* 计量单位标识
*/
@ApiModelProperty(value = "/**计量单位标识*/")
private String qty_unit_id;
/**
* 计量单位
* 数量计量单位名称
*/
@TableField(exist = false)
@ApiModelProperty(value = "/**数量计量单位名称*/")
private String qty_unit_name;
/**
* 计划交期
*/
private String plandeliver_date;
@ApiModelProperty(value = "/**计划交期*/")
private Date plandeliver_date;
/**
* 创建人
*/
@ApiModelProperty(value = "/**创建人*/")
private String create_id;
/**
* 创建人姓名
*/
@ApiModelProperty(value = "/**创建人姓名*/")
private String create_name;
/**
* 创建时间
*/
private String create_time;
@ApiModelProperty(value = "/**创建时间*/")
@TableField(fill = FieldFill.INSERT)
private Date create_time;
/**
* 提交人
*/
@ApiModelProperty(value = "/**提交人*/")
private String audit_id;
/**
* 提交时间
*/
@ApiModelProperty(value = "/**提交时间*/")
private String audit_time;
/**
* 提交人姓名
*/
@ApiModelProperty(value = "/**提交人姓名*/")
private String audit_name;
/**
* 确认人
*/
private Long confirm_id;
@ApiModelProperty(value = "/**确认人*/")
private String confirm_id;
/**
* 确认人姓名
*/
@ApiModelProperty(value = "/**确认人姓名*/")
private String confirm_name;
/**
* 确认时间
*/
@ApiModelProperty(value = "/**确认时间*/")
private String confirm_time;
/**
* 生成方式
*/
@ApiModelProperty(value = "/**生成方式*/")
private String create_mode;
/**
* 是否删除
*/
private String is_delete;
@ApiModelProperty(value = "/**是否删除*/")
@TableField(fill = FieldFill.INSERT)
private Integer is_delete;
/**
* 备注
*/
@ApiModelProperty(value = "/**备注*/")
private String remark;
/**
* 车间标识
*/
@ApiModelProperty(value = "/**车间标识*/")
private String product_area;
/**
* 生产数量
*/
@ApiModelProperty(value = "/**生产数量*/")
private BigDecimal product_qty;
/**
* 预入库数量
*/
@ApiModelProperty(value = "/**预入库数量*/")
private BigDecimal instor_qty;
/**
* 发货数量
*/
@ApiModelProperty(value = "/**发货数量*/")
private BigDecimal sendout_qty;
/**
* 物料编码
*/
@ApiModelProperty(value = "/**物料编码*/")
private String material_code;
/**
* 物料规格
*/
@ApiModelProperty(value = "/**物料规格*/")
private String material_spec;
/**
* 订单合同号
*/
@ApiModelProperty(value = "/**订单合同号*/")
private String contract_code;
/**
* aps最早开始时间下料时间)
*/
@ApiModelProperty(value = "/**aps最早开始时间下料时间)*/")
private String early_start_time;
/**
* aps订单状态
*/
@ApiModelProperty(value = "/**aps订单状态 */")
private String aps_status;
/**
* aps变更标识
*/
@ApiModelProperty(value = "/**aps变更标识*/")
private String aps_update_flag;
/**
* aps变更时间
*/
@ApiModelProperty(value = "/**aps变更时间*/")
private Date aps_update_time;
}

View File

@@ -5,16 +5,13 @@
<select id="pageQuery" resultType="java.util.Map">
SELECT
der.*,
SUBSTRING_INDEX(der.aps_sale_code, '-', 1) AS aps_sale_code,
SUBSTRING_INDEX(der.aps_sale_code, '-', -1) AS aps_seq_no,
mater.material_name,
mater.material_spec,
unit.unit_name AS qty_unit_name
DATE_FORMAT(der.plandeliver_date, '%Y-%m-%d' ) AS plandeliverDate,
DATE_FORMAT(der.create_time, '%Y-%m-%d %H:%i:%s' ) AS createTime,
DATE_FORMAT(der.aps_update_time, '%Y-%m-%d %H:%i:%s' ) AS apsUpdateTime,
mater.material_name
FROM
mps_sale_order der
LEFT JOIN md_me_materialbase mater ON der.material_code = mater.material_code
LEFT JOIN md_pb_measureunit unit ON der.qty_unit_id = unit.measure_unit_id
<where>
der.is_delete = '0'
<if test="query.sale_code != null">
@@ -37,22 +34,14 @@
<select id="queryAll" resultType="java.util.Map">
SELECT
der.aps_sale_code ,
SUBSTRING_INDEX(der.aps_sale_code, '-', 1) AS sale_code,
SUBSTRING_INDEX(der.aps_sale_code, '-', -1) AS seq_no,
der.aps_sale_type,der.aps_status,der.sale_type, der.material_id, der.material_code, der.product_area,
der.product_qty, der.sendout_qty, der.instor_qty,der.status, der.sale_qty, der.produce_seq,
der.cust_id, der.cust_code, der.cust_name, der.qty_unit_id, der.plandeliver_date, der.create_id,
der.create_name, der.create_time, der.audit_id, der.audit_time, der.audit_name, der.confirm_id,
der.confirm_name, der.confirm_time, der.is_delete, der.remark,
mater.material_name,
mater.material_spec,
unit.unit_name AS qty_unit_name
der.*,
DATE_FORMAT(der.plandeliver_date, '%Y-%m-%d' ) AS plandeliverDate,
DATE_FORMAT(der.create_time, '%Y-%m-%d %H:%i:%s' ) AS createTime,
DATE_FORMAT(der.aps_update_time, '%Y-%m-%d %H:%i:%s' ) AS apsUpdateTime,
mater.material_name
FROM
mps_sale_order der
LEFT JOIN md_me_materialbase mater ON der.material_code = mater.material_code
LEFT JOIN md_pb_measureunit unit ON der.qty_unit_id = unit.measure_unit_id
<where>
der.is_delete = '0'
<if test="query.sale_code != null">

View File

@@ -112,8 +112,7 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
mpsSaleOrder.setStatus("10");
mpsSaleOrder.setCreate_id(SecurityUtils.getCurrentUserId());
mpsSaleOrder.setCreate_name(SecurityUtils.getCurrentNickName());
mpsSaleOrder.setCreate_time(DateUtil.now());
mpsSaleOrder.setIs_delete("0 ");
mpsSaleOrder.setCreate_time(new Date());
MdCsCustomerbase cust = icustomerbaseService.getOne(new QueryWrapper<MdCsCustomerbase>().eq("cust_code", mpsSaleOrder.getCust_code()));
mpsSaleOrder.setCust_id(cust.getCust_id());
mpsSaleOrder.setCust_name(cust.getCust_name());
@@ -147,24 +146,20 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
}
String error_message = "";
MpsSaleOrder mpsSaleOrder = new MpsSaleOrder();
mpsSaleOrder.setSale_id(IdUtil.getStringId());
mpsSaleOrder.setSale_type("01");
mpsSaleOrder.setProduct_area("A1");
mpsSaleOrder.setStatus("10");
mpsSaleOrder.setCreate_time(DateUtil.now());
mpsSaleOrder.setCreate_time(new Date());
mpsSaleOrder.setConfirm_time(DateUtil.now());
mpsSaleOrder.setCreate_id(SecurityUtils.getCurrentUserId());
mpsSaleOrder.setCreate_name(SecurityUtils.getCurrentUsername());
mpsSaleOrder.setAps_sale_type("M");
mpsSaleOrder.setAps_status("X");
mpsSaleOrder.setCreate_mode("03");
for(int j = 0; j < list.size(); j++) {
String col = null == list.get(j) ? "" : String.valueOf(list.get(j));
//存在订单编号,忽略不导入
OrderQuery orderQuery = new OrderQuery();
List<Map> saleCode = baseMapper.queryAll(orderQuery);
if(saleCode.stream()
.anyMatch(m -> col.equals(m.get("sale_code")))) {
if(saleCode.stream().anyMatch(m -> col.equals(m.get("sale_code")))) {
continue;
}
解析cell:
@@ -177,67 +172,67 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
}
if(j == 1) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("明细序号不能为空");
throw new BadRequestException("合同号不能为空");
}
mpsSaleOrder.setSeq_no(col);
mpsSaleOrder.setAps_sale_code(mpsSaleOrder.getSale_code() + "-" + col);
mpsSaleOrder.setContract_code(col);
//mpsSaleOrder.setAps_sale_code(mpsSaleOrder.getSale_code() + "-" + col);
}
if(j == 2) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("销售数量不能为空");
throw new BadRequestException("规格名称不能为空");
}
mpsSaleOrder.setSale_qty(BigDecimal.valueOf(Double.parseDouble(col)));
}
if(j == 3) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("物料编码不能为空");
}
mpsSaleOrder.setMaterial_code(col);
List<MdMeMaterialbase> meMaterialBases = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().eq("material_code", col));
mpsSaleOrder.setMaterial_spec(col);
List<MdMeMaterialbase> meMaterialBases = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().like("material_spec", col));
if(CollectionUtils.isEmpty(meMaterialBases)) {
errorMap.put("" + i + "" + col, "物料编码对应物料信息不存在");
error_message = error_message + col + "物料编码对应物料信息不存在,";
errorMap.put("" + i + "" + col, "物料规格对应物料信息不存在");
error_message = error_message + col + "物料规格对应物料信息不存在,";
}
else{
Optional<MdMeMaterialbase> first = meMaterialBases
.stream()
.findFirst();
first.ifPresent(mdMeMaterialbase -> {
Optional<MdMeMaterialbase> first = meMaterialBases.stream().findFirst();
first.ifPresent(mdMeMaterialbase ->
{
//物料id
mpsSaleOrder.setMaterial_id(mdMeMaterialbase.getMaterial_id());
//物料编码
mpsSaleOrder.setMaterial_code(mdMeMaterialbase.getMaterial_code());
//计量单位
mpsSaleOrder.setQty_unit_id(mdMeMaterialbase.getBase_unit_id());
});
}
}
if(j == 4) {
if(StringUtils.isNotBlank(col)) {
mpsSaleOrder.setCust_id(col);
if(j == 3) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("工段信息不能为空");
}
//智能一线,智能三线
mpsSaleOrder.setProduct_area(col.contains("") || col.contains("3") ? "A3" : "A1");
}
if(j == 4) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("销售数量不能为空");
}
mpsSaleOrder.setSale_qty(BigDecimal.valueOf(Double.parseDouble(col)));
}
if(j == 5) {
//计量单位
if(StringUtils.isNotBlank(col)) {
mpsSaleOrder.setCust_code(col);
mpsSaleOrder.setQty_unit_name(col);
}
}
if(j == 6) {
//最早开始时间(下料时间)
if(StringUtils.isNotBlank(col)) {
mpsSaleOrder.setCust_name(col);
mpsSaleOrder.setEarly_start_time(DateUtil.format(DateUtil.parse(col), "yyyy-MM-dd"));
}
}
if(j == 7) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("计量单位不能为空");
}
mpsSaleOrder.setQty_unit_id(col);
}
if(j == 8) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("订单交期不能为空");
}
mpsSaleOrder.setPlandeliver_date(DateUtil.format(DateUtil.parse(col), "yyyy/MM/dd"));
mpsSaleOrder.setPlandeliver_date(DateUtil.parse(col));
}
if(j == 9) {
if(j == 8) {
//备注
if(StringUtils.isNotBlank(col)) {
mpsSaleOrder.setRemark(col);
}

View File

@@ -40,6 +40,13 @@ public class PdmProduceWorkorder implements Serializable {
*/
private String workorder_code;
/**
* 工单编号
*/
private String material_code;
/**
* 班次类型
*/

View File

@@ -161,35 +161,39 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
@Override
public void down(List<String> ids) {
if (ids == null || ids.size() == 0) {
if(ids == null || ids.size() == 0) {
return;
}
List<PdmProduceWorkorder> workorders = this.list(new QueryWrapper<PdmProduceWorkorder>().in("workorder_id", ids).lt("workorder_status",WorkerOrderEnum.AUTO_COMPLETE.getCode()));
if (workorders.size()!= ids.size()){
List<PdmProduceWorkorder> workorders = this.list(new QueryWrapper<PdmProduceWorkorder>().in("workorder_id", ids).lt("workorder_status", WorkerOrderEnum.AUTO_COMPLETE.getCode()));
if(workorders.size() != ids.size()) {
throw new BadRequestException("完成的工单不允许再次下发");
}
List<PdmProduceWorkorder> list = this.list(new QueryWrapper<PdmProduceWorkorder>()
.nested(i -> i
.isNull("workorder_code").or()
.eq("workorder_code", "").or()
.eq("workorder_code", "0"))
.in("workorder_id", ids));
List<PdmProduceWorkorder> list = this.list(new QueryWrapper<PdmProduceWorkorder>().nested(i -> i.isNull("workorder_code").or().eq("workorder_code", "").or().eq("workorder_code", "").or().eq("material_id", "0")).in("workorder_id", ids));
//aps排产完成的工单生成工单编号再下发
if(list.size() > 0) {
list.forEach(r -> {
this.update(new UpdateWrapper<PdmProduceWorkorder>()
.eq("workorder_id", r.getWorkorder_id())
.set("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")));
list.forEach(r ->
{
UpdateWrapper<PdmProduceWorkorder> updateWrapper = new UpdateWrapper<PdmProduceWorkorder>();
if("0".equals(r.getMaterial_id())) {
List<MdMeMaterialbase> meMaterialBases = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().eq("material_code", r.getMaterial_code()));
if(!CollectionUtils.isEmpty(meMaterialBases)) {
Optional<MdMeMaterialbase> first = meMaterialBases.stream().findFirst();
first.ifPresent(mdMeMaterialbase ->
{
//物料id
updateWrapper.set("material_id", mdMeMaterialbase.getMaterial_id());
//计量单位
updateWrapper.set("materialprocess_series", mdMeMaterialbase.getProduct_series());
});
}
}
updateWrapper.eq("workorder_id", r.getWorkorder_id());
updateWrapper.set("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER"));
this.update(updateWrapper);
});
}
this.update(new UpdateWrapper<PdmProduceWorkorder>()
.set("workorder_status", WorkerOrderEnum.SEND.getCode())
.set("down_id", SecurityUtils.getCurrentUserId())
.set("down_name", SecurityUtils.getCurrentNickName())
.set("down_time", new Date())
.in("workorder_id", ids));
this.update(new UpdateWrapper<PdmProduceWorkorder>().set("workorder_status", WorkerOrderEnum.SEND.getCode()).set("down_id", SecurityUtils.getCurrentUserId()).set("down_name", SecurityUtils.getCurrentNickName()).set("down_time", new Date()).in("workorder_id", ids));
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, ids.toArray(new String[0]));
}
@Override

View File

@@ -75,7 +75,7 @@ public class FactoryCalendarServiceImpl implements FactoryCalendarService{
whereJson.put("create_time", DateUtil.now());
WQLObject.getWQLObject("PDM_BI_FactoryCalendar").insert(whereJson);
//插入明细表
this.insertDtlTransactionally(whereJson);
this.insertDtl(whereJson);
}
@Override
@@ -92,15 +92,16 @@ public class FactoryCalendarServiceImpl implements FactoryCalendarService{
String new_start = (old_year + 1) + "-01-01";
whereJson.put("factorycale_startdate", new_start);
//插入明细表
this.insertDtlTransactionally(whereJson);
this.insertDtl(whereJson);
}
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void insertDtlTransactionally(JSONObject row) {
insertDtl(row);
}
// @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
// public void insertDtlTransactionally(JSONObject row) {
// insertDtl(row);
// }
@Async("taskExecutor")
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void insertDtl(JSONObject row) {
try {
String a = DateUtil.format(DateUtil.parse(row.getString("factorycale_startdate")), "yyyy/MM/dd");

View File

@@ -3,7 +3,6 @@ package org.nl.wms.system_manage.service.quartz.utils;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import org.nl.config.thread.ThreadPoolExecutorUtil;
import org.nl.modules.common.utils.RedisUtils;
import org.nl.modules.common.utils.ThrowableUtil;
import org.nl.modules.wql.util.SpringContextHolder;
@@ -17,7 +16,6 @@ import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.scheduling.quartz.QuartzJobBean;
import javax.annotation.Resource;