diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/dao/CommodityCodeModifyLogDao.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/dao/CommodityCodeModifyLogDao.java new file mode 100644 index 00000000..a701db27 --- /dev/null +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/dao/CommodityCodeModifyLogDao.java @@ -0,0 +1,76 @@ +package com.dxhy.order.baseservice.module.commodity.dao; + +import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeModifyLog; +import com.dxhy.order.baseservice.module.commodity.model.GroupCommodity; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * (CommodityCodeModifyLog)表数据库访问层 + * + * @author 巩权林 + * @since 2023-03-20 15:31:37 + */ +public interface CommodityCodeModifyLogDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + CommodityCodeModifyLog queryById(String id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param commodityCodeModifyLog 实例对象 + * @return 对象列表 + */ + List queryAll(CommodityCodeModifyLog commodityCodeModifyLog); + + /** + * 新增数据 + * + * @param commodityCodeModifyLog 实例对象 + * @return 影响行数 + */ + int insert(CommodityCodeModifyLog commodityCodeModifyLog); + + + /** + * 批量插入 + * + * @param commodityCodeModifyLog + * @return + */ + int batchInsert(List commodityCodeModifyLog); + + /** + * 修改数据 + * + * @param commodityCodeModifyLog 实例对象 + * @return 影响行数 + */ + int update(CommodityCodeModifyLog commodityCodeModifyLog); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(String id); + +} \ No newline at end of file diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/CommodityCodeModifyLog.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/CommodityCodeModifyLog.java new file mode 100644 index 00000000..f192c9ff --- /dev/null +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/CommodityCodeModifyLog.java @@ -0,0 +1,104 @@ +package com.dxhy.order.baseservice.module.commodity.model; + +/** + * @Description + * @Author 巩权林 + * @Date 2023/3/20 15:33 + **/ + +import java.io.Serializable; +import java.util.Date; + +/** + * (CommodityCodeModifyLog)实体类 + * + * @author 巩权林 + * @since 2023-03-20 15:31:30 + */ +public class CommodityCodeModifyLog implements Serializable { + private static final long serialVersionUID = -85350041852113526L; + + private String id; + /** + * 修改的物料编码id + */ + private String commodityCodeId; + /** + * 修改的字段属性,key + */ + private String key; + /** + * 原值 + */ + private String originValue; + /** + * 新值 + */ + private String newValue; + /** + * 修改人 + */ + private String modifyUserId; + /** + * 修改时间 + */ + private Date modifyTime; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getCommodityCodeId() { + return commodityCodeId; + } + + public void setCommodityCodeId(String commodityCodeId) { + this.commodityCodeId = commodityCodeId; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getOriginValue() { + return originValue; + } + + public void setOriginValue(String originValue) { + this.originValue = originValue; + } + + public String getNewValue() { + return newValue; + } + + public void setNewValue(String newValue) { + this.newValue = newValue; + } + + public String getModifyUserId() { + return modifyUserId; + } + + public void setModifyUserId(String modifyUserId) { + this.modifyUserId = modifyUserId; + } + + public Date getModifyTime() { + return modifyTime; + } + + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + +} diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/CommodityCodeModifyLogService.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/CommodityCodeModifyLogService.java new file mode 100644 index 00000000..a0b4be08 --- /dev/null +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/CommodityCodeModifyLogService.java @@ -0,0 +1,63 @@ +package com.dxhy.order.baseservice.module.commodity.service; + +import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; +import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeModifyLog; +import com.dxhy.order.baseservice.module.commodity.model.GroupCommodity; + +import java.util.List; + +/** + * (CommodityCodeModifyLog)表服务接口 + * + * @author 巩权林 + * @since 2023-03-20 15:31:37 + */ +public interface CommodityCodeModifyLogService { + + public int saveCommodityCodeDifferenceBetween2(CommodityCodeEntity originOne, CommodityCodeEntity newOne, String modifyUserId); + + + public + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + CommodityCodeModifyLog queryById(String id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param commodityCodeModifyLog 实例对象 + * @return 实例对象 + */ + CommodityCodeModifyLog insert(CommodityCodeModifyLog commodityCodeModifyLog); + + /** + * 修改数据 + * + * @param commodityCodeModifyLog 实例对象 + * @return 实例对象 + */ + CommodityCodeModifyLog update(CommodityCodeModifyLog commodityCodeModifyLog); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(String id); + +} \ No newline at end of file diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityCodeModifyLogServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityCodeModifyLogServiceImpl.java new file mode 100644 index 00000000..dbcc77ba --- /dev/null +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityCodeModifyLogServiceImpl.java @@ -0,0 +1,132 @@ +package com.dxhy.order.baseservice.module.commodity.service.impl; + +import com.dxhy.order.baseservice.module.base.service.BaseService; +import com.dxhy.order.baseservice.module.commodity.dao.CommodityCodeModifyLogDao; +import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; +import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeModifyLog; +import com.dxhy.order.baseservice.module.commodity.model.GroupCommodity; +import com.dxhy.order.baseservice.module.commodity.service.CommodityCodeModifyLogService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * (CommodityCodeModifyLog)表服务实现类 + * + * @author 巩权林 + * @since 2023-03-20 15:31:37 + */ +@Service("commodityCodeModifyLogService") +public class CommodityCodeModifyLogServiceImpl implements CommodityCodeModifyLogService { + @Resource + private CommodityCodeModifyLogDao commodityCodeModifyLogDao; + + @Resource + private BaseService baseService; + + /** + * 比较两个集团物料编码的区别并且保存历史记录 + * + * @param originOne + * @param newOne + * @return + */ + @Override + public int saveCommodityCodeDifferenceBetween2(CommodityCodeEntity originOne, CommodityCodeEntity newOne, String modifyUserId) { + if (StringUtils.isBlank(originOne.getId())) { + return 0; + } + + Field[] fields = CommodityCodeEntity.class.getFields(); + List modifyLogs = new ArrayList<>(); + for (int i = 0; i < fields.length; i++) { + Field tempField = fields[i]; + tempField.setAccessible(true); + try { + Object originValue = tempField.get(originOne); + Object newValue = tempField.get(newOne); + if (!originValue.equals(newValue)) { + CommodityCodeModifyLog modifyLog = new CommodityCodeModifyLog(); + modifyLog.setId(baseService.getGenerateShotKey()); + modifyLog.setCommodityCodeId(originOne.getCommodityId()); + modifyLog.setKey(tempField.getName()); + modifyLog.setOriginValue(originValue.toString()); + modifyLog.setOriginValue(originValue.toString()); + modifyLog.setModifyTime(new Date()); + modifyLog.setModifyUserId(modifyUserId); + modifyLogs.add(modifyLog); + } + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } + + // 批量插入保存 + + + return 0; + } + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public CommodityCodeModifyLog queryById(String id) { + return this.commodityCodeModifyLogDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.commodityCodeModifyLogDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param commodityCodeModifyLog 实例对象 + * @return 实例对象 + */ + @Override + public CommodityCodeModifyLog insert(CommodityCodeModifyLog commodityCodeModifyLog) { + this.commodityCodeModifyLogDao.insert(commodityCodeModifyLog); + return commodityCodeModifyLog; + } + + /** + * 修改数据 + * + * @param commodityCodeModifyLog 实例对象 + * @return 实例对象 + */ + @Override + public CommodityCodeModifyLog update(CommodityCodeModifyLog commodityCodeModifyLog) { + this.commodityCodeModifyLogDao.update(commodityCodeModifyLog); + return this.queryById(commodityCodeModifyLog.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(String id) { + return this.commodityCodeModifyLogDao.deleteById(id) > 0; + } +} \ No newline at end of file diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityServiceImpl.java index 7d87cfdc..c713a1b9 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityServiceImpl.java @@ -32,6 +32,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; @@ -91,6 +92,7 @@ public class CommodityServiceImpl implements CommodityService { * @return */ @Override + @Transactional public boolean addOrEditCommodity(CommodityCodeEntity codeEntity) { List shList = NsrsbhUtils.transShListByNsrsbh(codeEntity.getXhfNsrsbh()); @@ -106,6 +108,8 @@ public class CommodityServiceImpl implements CommodityService { //启用 codeEntity.setDataState(TaxClassCodeEnum.DATA_STATE_0.getKey()); } + // TODO 记录修改记录 + int i = commodityMapper.updateCommodity(codeEntity, shList); flag = i >= 0; } else { diff --git a/order-management-base-service/src/main/resources/mapper/CommodityCodeModifyLogDao.xml b/order-management-base-service/src/main/resources/mapper/CommodityCodeModifyLogDao.xml new file mode 100644 index 00000000..784d7810 --- /dev/null +++ b/order-management-base-service/src/main/resources/mapper/CommodityCodeModifyLogDao.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + insert into sales_order_sdenergy.commodity_code_modify_log(commodity_code_id, key, origin_value, new_value, modify_user_id, modify_time) + values (#{commodityCodeId}, #{key}, #{originValue}, #{newValue}, #{modifyUserId}, #{modifyTime}) + + + + + insert into sales_order_sdenergy.commodity_code_modify_log(commodity_code_id, key, origin_value, new_value, modify_user_id, modify_time) + values (#{commodityCodeId}, #{key}, #{originValue}, #{newValue}, #{modifyUserId}, #{modifyTime}) + + + + + update sales_order_sdenergy.commodity_code_modify_log + + + commodity_code_id = #{commodityCodeId}, + + + key = #{key}, + + + origin_value = #{originValue}, + + + new_value = #{newValue}, + + + modify_user_id = #{modifyUserId}, + + + modify_time = #{modifyTime}, + + + where id = #{id} + + + + + delete from sales_order_sdenergy.commodity_code_modify_log where id = #{id} + + + \ No newline at end of file diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml index c6650d1d..f76a656e 100644 --- a/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml @@ -116,6 +116,15 @@ #{item} + + and cc.ent_id = '' + + + and cc.ent_id = + + #{item} + + and cc.ent_id in AND cc.data_state = #{map.sjzt,jdbcType=VARCHAR} - - AND cc.ent_id = #{map.entId,jdbcType=VARCHAR} - + + + AND cc.tswl = #{map.tswl,jdbcType=VARCHAR} diff --git a/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml b/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml index 953f09fe..29711c86 100644 --- a/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml +++ b/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml @@ -369,7 +369,6 @@ data_source, matching_state, data_state, tax_class_abbreviation, description, collect_ident, cpy, bmb_bbh, jdc, wlflbm, wlflmc,ent_id) - values select commodity_id, sort_id, #{to.xhfNsrsbh,jdbcType=VARCHAR},