diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java index 3dc1a76a..6b54cbd2 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java @@ -2,6 +2,7 @@ package com.dxhy.order.baseservice.config; import lombok.Getter; import lombok.Setter; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Configuration; @@ -93,12 +94,23 @@ public class UserCenterConfig { /** * i-tax新增用户 + * * @return */ - public String configAddBigUser(){ + public String configAddBigUser() { return dbUserInfoUrl + "/api/user/addUserInfo"; } + /** + * i-tax批量根据用户id查询用户 + * + * @return + */ + public String queryUserByIds() { + String url = StringUtils.isNotBlank(System.getenv("DEBUG_ITAX_HOST")) ? "http://localhost:18100/itax" : dbUserInfoUrl; + return url + "/api/user/queryUserBatch"; + } + /** * 获取大B用户信息 * diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java index fca90282..7f2fcd06 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java @@ -4,6 +4,9 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeModifyLog; +import com.dxhy.order.baseservice.module.commodity.model.dto.QueryModifyLogDTO; +import com.dxhy.order.baseservice.module.commodity.service.CommodityCodeModifyLogService; import com.dxhy.order.constant.*; import com.dxhy.order.model.CommodityCodeCheckQuery; import com.dxhy.order.model.CommodityTaxClassCodeReq; @@ -63,6 +66,9 @@ public class CommodityController { @Resource private BaseService baseService; + @Resource + private CommodityCodeModifyLogService commodityCodeModifyLogService; + /** * 查询商品编码 * 在使用 @@ -662,4 +668,15 @@ public class CommodityController { private String nullToEmptyString(String str) { return Objects.isNull(str) ? "" : str; } + + @PostMapping("/modifyLog") + public R modifyLog(@RequestBody QueryModifyLogDTO dto) { + try { + PageUtils pageUtil = commodityCodeModifyLogService.queryPage(dto); + return R.ok().put("page", pageUtil); + } catch (NumberFormatException e) { + log.error("{},分页参数类型转换异常:{}", LOGGER_MSG, e.getMessage()); + return R.error("商品信息列表查询异常"); + } + } } 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 index f192c9ff..c3e032c9 100644 --- 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 @@ -6,6 +6,8 @@ package com.dxhy.order.baseservice.module.commodity.model; * @Date 2023/3/20 15:33 **/ +import com.dxhy.order.baseservice.module.commodity.model.dto.UserInfoDTO; + import java.io.Serializable; import java.util.Date; @@ -44,6 +46,7 @@ public class CommodityCodeModifyLog implements Serializable { */ private Date modifyTime; + private String modifyUserName; public String getId() { return id; @@ -101,4 +104,11 @@ public class CommodityCodeModifyLog implements Serializable { this.modifyTime = modifyTime; } + public String getModifyUserName() { + return modifyUserName; + } + + public void setModifyUserName(String modifyUserName) { + this.modifyUserName = modifyUserName; + } } diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/dto/QueryModifyLogDTO.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/dto/QueryModifyLogDTO.java new file mode 100644 index 00000000..334db0f6 --- /dev/null +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/dto/QueryModifyLogDTO.java @@ -0,0 +1,15 @@ +package com.dxhy.order.baseservice.module.commodity.model.dto; + +import lombok.Data; + +/** + * @Description + * @Author 巩权林 + * @Date 2023/3/27 09:05 + **/ +@Data +public class QueryModifyLogDTO { + private Integer currPage; + private Integer pageSize; + private String commodityId; +} diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/dto/UserInfoDTO.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/dto/UserInfoDTO.java new file mode 100644 index 00000000..adfdf655 --- /dev/null +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/dto/UserInfoDTO.java @@ -0,0 +1,23 @@ +package com.dxhy.order.baseservice.module.commodity.model.dto; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +/** + * @author xuxueli 2018-03-22 23:51:51 + */ +@Getter +@Setter +public class UserInfoDTO { + + private Long userid; + private String username; + private String password; + private String mobile; + private String name; + private int status; + private Integer loginCount; + private Date lastLoginTime; +} 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 index a0b4be08..f17c89fc 100644 --- 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 @@ -3,6 +3,8 @@ 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 com.dxhy.order.baseservice.module.commodity.model.dto.QueryModifyLogDTO; +import com.dxhy.order.model.PageUtils; import java.util.List; @@ -14,10 +16,12 @@ import java.util.List; */ public interface CommodityCodeModifyLogService { - public int saveCommodityCodeDifferenceBetween2(CommodityCodeEntity originOne, CommodityCodeEntity newOne, String modifyUserId); + public int saveCommodityCodeDifferenceBetween2(CommodityCodeEntity originOne, CommodityCodeEntity newOne, Long modifyUserId); + public PageUtils queryPage(QueryModifyLogDTO dto); - public + + public /** * 通过ID查询单条数据 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 index dbcc77ba..b76358e3 100644 --- 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 @@ -1,19 +1,37 @@ package com.dxhy.order.baseservice.module.commodity.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.dxhy.order.baseservice.config.UserCenterConfig; 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.model.dto.QueryModifyLogDTO; +import com.dxhy.order.baseservice.module.commodity.model.dto.UserInfoDTO; import com.dxhy.order.baseservice.module.commodity.service.CommodityCodeModifyLogService; +import com.dxhy.order.constant.ConfigureConstant; +import com.dxhy.order.model.PageUtils; +import com.dxhy.order.model.R; +import com.dxhy.order.utils.HttpUtils; +import com.dxhy.order.utils.JsonUtils; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * (CommodityCodeModifyLog)表服务实现类 @@ -21,14 +39,21 @@ import java.util.List; * @author 巩权林 * @since 2023-03-20 15:31:37 */ +@Slf4j @Service("commodityCodeModifyLogService") public class CommodityCodeModifyLogServiceImpl implements CommodityCodeModifyLogService { + + private static final String LOGGER_MSG = "(物料修改记录表)"; + @Resource private CommodityCodeModifyLogDao commodityCodeModifyLogDao; @Resource private BaseService baseService; + @Resource + private UserCenterConfig userCenterConfig; + /** * 比较两个集团物料编码的区别并且保存历史记录 * @@ -37,7 +62,7 @@ public class CommodityCodeModifyLogServiceImpl implements CommodityCodeModifyLog * @return */ @Override - public int saveCommodityCodeDifferenceBetween2(CommodityCodeEntity originOne, CommodityCodeEntity newOne, String modifyUserId) { + public int saveCommodityCodeDifferenceBetween2(CommodityCodeEntity originOne, CommodityCodeEntity newOne, Long modifyUserId) { if (StringUtils.isBlank(originOne.getId())) { return 0; } @@ -58,7 +83,7 @@ public class CommodityCodeModifyLogServiceImpl implements CommodityCodeModifyLog modifyLog.setOriginValue(originValue.toString()); modifyLog.setOriginValue(originValue.toString()); modifyLog.setModifyTime(new Date()); - modifyLog.setModifyUserId(modifyUserId); + modifyLog.setModifyUserId(Long.toString(modifyUserId)); modifyLogs.add(modifyLog); } } catch (IllegalAccessException e) { @@ -67,9 +92,60 @@ public class CommodityCodeModifyLogServiceImpl implements CommodityCodeModifyLog } // 批量插入保存 + return commodityCodeModifyLogDao.batchInsert(modifyLogs); + } + + @Override + @SneakyThrows + public PageUtils queryPage(QueryModifyLogDTO dto) { + int pageSize = dto.getPageSize(); + int currPage = dto.getCurrPage(); + PageHelper.startPage(currPage, pageSize); + CommodityCodeModifyLog query = new CommodityCodeModifyLog(); + query.setCommodityCodeId(dto.getCommodityId()); + List commodityCodeModifyLogs = commodityCodeModifyLogDao.queryAll(query); + List modifyUserId = commodityCodeModifyLogs.stream().map(CommodityCodeModifyLog::getModifyUserId).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(modifyUserId)) { + modifyUserId = modifyUserId.stream().distinct().collect(Collectors.toList()); + String requestBody = JsonUtils.getInstance().toJsonString(modifyUserId); + // 如果修改记录的用户id不为空,则进行匹配 + log.info("{},查询用户的接口,url:{},入参:{}", LOGGER_MSG, userCenterConfig.queryUserByIds(), requestBody); + Map headMap = new HashMap<>(2); + headMap.put("Content-Type", ConfigureConstant.STRING_APPLICATION_JSON); + HttpServletRequest req = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + String requestToken = req.getHeader(ConfigureConstant.DXHY_SSO_SESSION_ID); + headMap.put("Cookie", "dxhy_sso_sessionid=" + requestToken); + String url = userCenterConfig.queryUserByIds(); + String result = HttpUtils.doPostWithHeader(url, requestBody, headMap); + log.info("{},查询用户的接口,返回报文:{}", LOGGER_MSG, result); + if (StringUtils.isEmpty(result)) { + throw new RuntimeException("查询用户信息失败"); + } + + // 循环插入用户 + JSONObject queryResult = JSONObject.parseObject(result); + if (!StringUtils.equals(queryResult.getString("code"), "0000")) { + log.error("{},查询用户的接口,返回报文:{},查询用户失败", LOGGER_MSG, result); + throw new RuntimeException("查询用户信息失败"); + } + JSONArray userInfoJsonArray = queryResult.getJSONArray("data"); + if (CollectionUtils.isEmpty(userInfoJsonArray)) { + log.error("{},查询用户的接口,返回报文:{},查询用户为空", LOGGER_MSG, result); + throw new RuntimeException("查询用户信息为空"); + } + List userInfoList = userInfoJsonArray.toJavaList(UserInfoDTO.class); + // 循环匹配用户 + commodityCodeModifyLogs.forEach(i -> { + UserInfoDTO userInfoDTO = userInfoList.stream() + .filter(j -> StringUtils.equals(Long.toString(j.getUserid()), i.getModifyUserId())) + .findFirst().orElse(null); + i.setModifyUserName(userInfoDTO.getName()); + }); + } - return 0; + PageInfo pageInfo = new PageInfo<>(commodityCodeModifyLogs); + return new PageUtils(pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPageSize(), pageInfo.getPageNum()); } /** 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 c713a1b9..c6b006e7 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 @@ -1,6 +1,8 @@ package com.dxhy.order.baseservice.module.commodity.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.dxhy.order.baseservice.module.commodity.service.CommodityCodeModifyLogService; +import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.constant.*; import com.dxhy.order.model.CommodityCodeCheckQuery; import com.dxhy.order.model.CommodityTaxClassCodeParam; @@ -64,6 +66,12 @@ public class CommodityServiceImpl implements CommodityService { @Resource private CommodityService commodityService; + @Resource + private CommodityCodeModifyLogService commodityCodeModifyLogService; + + @Resource + private UserInfoService userInfoService; + /** * 查询 * @@ -75,7 +83,7 @@ public class CommodityServiceImpl implements CommodityService { int pageSize = Integer.parseInt((String) map.get(ConfigureConstant.STRING_PAGE_SIZE)); int currPage = Integer.parseInt((String) map.get(ConfigureConstant.STRING_CURR_PAGE)); PageHelper.startPage(currPage, pageSize); - List selectCommodity = commodityMapper.selectCommodityList(map, xhfNsrsbh,entIdList); + List selectCommodity = commodityMapper.selectCommodityList(map, xhfNsrsbh, entIdList); selectCommodity.forEach(commodityCodeEntity -> { if (StringUtils.isNotBlank(commodityCodeEntity.getSl())) { commodityCodeEntity.setSl(CommonUtils.formatSl(commodityCodeEntity.getSl())); @@ -108,7 +116,9 @@ public class CommodityServiceImpl implements CommodityService { //启用 codeEntity.setDataState(TaxClassCodeEnum.DATA_STATE_0.getKey()); } - // TODO 记录修改记录 + // 记录修改记录 + Long userId = userInfoService.getUser().getUserId(); + commodityCodeModifyLogService.saveCommodityCodeDifferenceBetween2(commodityCodeEntity, codeEntity, userId); int i = commodityMapper.updateCommodity(codeEntity, shList); flag = i >= 0; diff --git a/order-management-base-service/src/main/resources/mapper/CommodityCodeModifyLogDao.xml b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityCodeModifyLogDao.xml similarity index 81% rename from order-management-base-service/src/main/resources/mapper/CommodityCodeModifyLogDao.xml rename to order-management-base-service/src/main/resources/mybatis/mapper/CommodityCodeModifyLogDao.xml index 784d7810..c11945ad 100644 --- a/order-management-base-service/src/main/resources/mapper/CommodityCodeModifyLogDao.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityCodeModifyLogDao.xml @@ -2,7 +2,7 @@ - + @@ -15,7 +15,7 @@ @@ -23,7 +23,7 @@ @@ -31,7 +31,7 @@ - insert into sales_order_sdenergy.commodity_code_modify_log(commodity_code_id, key, origin_value, new_value, modify_user_id, modify_time) + 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}) + insert into sales_order_sdenergy.commodity_code_modify_log(id,commodity_code_id, `key`, origin_value, new_value, modify_user_id, modify_time) + values ( + + (#{item.id}, #{item.commodityCodeId}, #{item.key}, #{item.originValue}, #{item.newValue}, #{item.modifyUserId}, #{item.modifyTime}) + ) + @@ -77,7 +81,7 @@ commodity_code_id = #{commodityCodeId}, - key = #{key}, + `key` = #{key}, origin_value = #{originValue},