Browse Source

fix:[资源库管理][麻精药管理]库存,编辑bug

master
15881625488@163.com 2 weeks ago
parent
commit
9a42d7845a
9 changed files with 432 additions and 545 deletions
  1. +9
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/Mjy.java
  2. +11
    -12
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java
  3. +4
    -4
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/enums/zykgl/JcmcysEnum.java
  4. +55
    -48
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyBjForm.java
  5. +8
    -75
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShbjForm.java
  6. +0
    -20
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShxgkcForm.java
  7. +24
    -23
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyXgkcForm.java
  8. +106
    -363
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java
  9. +215
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java

+ 9
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/Mjy.java View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hxhq.common.core.annotation.Excel;
import com.hxhq.common.core.domain.MpBaseEntity;
@ -21,24 +22,30 @@ public class Mjy extends MpBaseEntity
private static final long serialVersionUID = 1L;
/** 名称 */
@Excel(name = "名称")
private String mc;
/** 编号 */
private String bh;
/** 浓度 */
@Excel(name = "浓度")
private String nd;
/** 浓度单位 */
@Excel(name = "浓度单位")
private String nddw;
/** 库存 */
@Excel(name = "库存")
private String kc;
/** 库存单位 */
@Excel(name = "库存单位")
private String kcdw;
/** 失效日期 */
@Excel(name = "失效日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sxrq;
@ -62,9 +69,11 @@ public class Mjy extends MpBaseEntity
private Long zcgId;
/** 存储条件 */
@Excel(name = "存储条件")
private String cctj;
/** 存储位置 */
@Excel(name = "存储位置")
private String ccwz;
/** 表单id */

+ 11
- 12
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java View File

@ -48,9 +48,6 @@ public class MjyFfjl extends MpBaseEntity
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sxrq;
/** 保存条件 */
private String bctj;
/** 出库量 */
private String ckl;
@ -97,6 +94,9 @@ public class MjyFfjl extends MpBaseEntity
/** 发放备注 */
private String ffbz;
/** 项目id */
private Long xmId;
/** 归还转移条件 */
private String ghzytj;
@ -140,6 +140,14 @@ public class MjyFfjl extends MpBaseEntity
/** 归档申请人id */
private Long gdsqrId;
public Long getXmId() {
return xmId;
}
public void setXmId(Long xmId) {
this.xmId = xmId;
}
public String getLqr1Mc() {
return lqr1Mc;
}
@ -334,15 +342,6 @@ public class MjyFfjl extends MpBaseEntity
this.sxrq = sxrq;
}
public void setBctj(String bctj)
{
this.bctj = bctj;
}
public String getBctj()
{
return bctj;
}
public void setCkl(String ckl)
{

+ 4
- 4
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/enums/zykgl/JcmcysEnum.java View File

@ -9,22 +9,22 @@ public enum JcmcysEnum {
/**
* 蓝色
*/
wsd(1, "蓝色"),
blue(1, "蓝色"),
/**
* 红色
*/
ysd(3, "红色"),
red(3, "红色"),
/**
* 绿色
*/
dgd(5, "绿色"),
green(5, "绿色"),
/**
* 橙色
*/
gd(7, "橙色");
orange(7, "橙色");
private int value;
private String text;

+ 55
- 48
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyBjForm.java View File

@ -1,6 +1,7 @@
package com.hxhq.business.form.mjy;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hxhq.common.core.annotation.Excel;
import java.util.Date;
@ -13,29 +14,37 @@ public class MjyBjForm {
private Long id;
/** 名称编辑 */
private String mcbj;
@Excel(name = "名称")
private String mc;
/** 浓度编辑 */
private String ndbj;
@Excel(name = "浓度")
private String nd;
/** 浓度单位编辑 */
private String nddwbj;
@Excel(name = "浓度单位")
private String nddw;
/** 库存编辑 */
private String kcbj;
@Excel(name = "库存")
private String kc;
/** 库存单位编辑 */
private String kcdwbj;
@Excel(name = "库存单位")
private String kcdw;
/** 失效日期编辑 */
@Excel(name = "失效日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sxrqbj;
private Date sxrq;
/** 存储条件编辑 */
private String cctjbj;
@Excel(name = "存储条件")
private String cctj;
/** 存储位置编辑 */
private String ccwzbj;
@Excel(name = "存储位置")
private String ccwz;
/** 编辑备注 */
private String bjbz;
@ -49,14 +58,6 @@ public class MjyBjForm {
/** 项目id */
private Long xmId;
public Long getXmId() {
return xmId;
}
public void setXmId(Long xmId) {
this.xmId = xmId;
}
public Long getId() {
return id;
}
@ -65,68 +66,68 @@ public class MjyBjForm {
this.id = id;
}
public String getMcbj() {
return mcbj;
public String getMc() {
return mc;
}
public void setMcbj(String mcbj) {
this.mcbj = mcbj;
public void setMc(String mc) {
this.mc = mc;
}
public String getNdbj() {
return ndbj;
public String getNd() {
return nd;
}
public void setNdbj(String ndbj) {
this.ndbj = ndbj;
public void setNd(String nd) {
this.nd = nd;
}
public String getNddwbj() {
return nddwbj;
public String getNddw() {
return nddw;
}
public void setNddwbj(String nddwbj) {
this.nddwbj = nddwbj;
public void setNddw(String nddw) {
this.nddw = nddw;
}
public String getKcbj() {
return kcbj;
public String getKc() {
return kc;
}
public void setKcbj(String kcbj) {
this.kcbj = kcbj;
public void setKc(String kc) {
this.kc = kc;
}
public String getKcdwbj() {
return kcdwbj;
public String getKcdw() {
return kcdw;
}
public void setKcdwbj(String kcdwbj) {
this.kcdwbj = kcdwbj;
public void setKcdw(String kcdw) {
this.kcdw = kcdw;
}
public Date getSxrqbj() {
return sxrqbj;
public Date getSxrq() {
return sxrq;
}
public void setSxrqbj(Date sxrqbj) {
this.sxrqbj = sxrqbj;
public void setSxrq(Date sxrq) {
this.sxrq = sxrq;
}
public String getCctjbj() {
return cctjbj;
public String getCctj() {
return cctj;
}
public void setCctjbj(String cctjbj) {
this.cctjbj = cctjbj;
public void setCctj(String cctj) {
this.cctj = cctj;
}
public String getCcwzbj() {
return ccwzbj;
public String getCcwz() {
return ccwz;
}
public void setCcwzbj(String ccwzbj) {
this.ccwzbj = ccwzbj;
public void setCcwz(String ccwz) {
this.ccwz = ccwz;
}
public String getBjbz() {
@ -153,5 +154,11 @@ public class MjyBjForm {
this.qmrmm = qmrmm;
}
public Long getXmId() {
return xmId;
}
public void setXmId(Long xmId) {
this.xmId = xmId;
}
}

+ 8
- 75
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShbjForm.java View File

@ -12,25 +12,6 @@ public class MjyShbjForm {
/** 麻精药id */
private Long id;
/** 名称编辑 */
private String mcbj;
/** 浓度编辑 */
private String ndbj;
/** 浓度单位编辑 */
private String nddwbj;
/** 失效日期编辑 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sxrqbj;
/** 存储条件编辑 */
private String cctjbj;
/** 存储位置编辑 */
private String ccwzbj;
/** 备注 */
private String remark;
@ -43,14 +24,6 @@ public class MjyShbjForm {
/** 签名意义 */
private String qmyy;
public String getQmyy() {
return qmyy;
}
public void setQmyy(String qmyy) {
this.qmyy = qmyy;
}
public Long getId() {
return id;
}
@ -59,54 +32,6 @@ public class MjyShbjForm {
this.id = id;
}
public String getMcbj() {
return mcbj;
}
public void setMcbj(String mcbj) {
this.mcbj = mcbj;
}
public String getNdbj() {
return ndbj;
}
public void setNdbj(String ndbj) {
this.ndbj = ndbj;
}
public String getNddwbj() {
return nddwbj;
}
public void setNddwbj(String nddwbj) {
this.nddwbj = nddwbj;
}
public Date getSxrqbj() {
return sxrqbj;
}
public void setSxrqbj(Date sxrqbj) {
this.sxrqbj = sxrqbj;
}
public String getCctjbj() {
return cctjbj;
}
public void setCctjbj(String cctjbj) {
this.cctjbj = cctjbj;
}
public String getCcwzbj() {
return ccwzbj;
}
public void setCcwzbj(String ccwzbj) {
this.ccwzbj = ccwzbj;
}
public String getRemark() {
return remark;
}
@ -130,4 +55,12 @@ public class MjyShbjForm {
public void setQmrmm(String qmrmm) {
this.qmrmm = qmrmm;
}
public String getQmyy() {
return qmyy;
}
public void setQmyy(String qmyy) {
this.qmyy = qmyy;
}
}

+ 0
- 20
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShxgkcForm.java View File

@ -9,17 +9,11 @@ public class MjyShxgkcForm {
private Long id;
/** 库存编辑 */
private String kcbj;
/** 库存 */
private String kc;
/** 库存单位 */
private String kcdw;
/** 库存单位编辑 */
private String kcdwbj;
/** 备注 */
private String remark;
@ -48,13 +42,6 @@ public class MjyShxgkcForm {
this.id = id;
}
public String getKcbj() {
return kcbj;
}
public void setKcbj(String kcbj) {
this.kcbj = kcbj;
}
public String getKc() {
return kc;
@ -72,13 +59,6 @@ public class MjyShxgkcForm {
this.kcdw = kcdw;
}
public String getKcdwbj() {
return kcdwbj;
}
public void setKcdwbj(String kcdwbj) {
this.kcdwbj = kcdwbj;
}
public String getRemark() {
return remark;

+ 24
- 23
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyXgkcForm.java View File

@ -1,5 +1,7 @@
package com.hxhq.business.form.mjy;
import com.hxhq.common.core.annotation.Excel;
/**
* @author 15881
*/
@ -8,11 +10,13 @@ public class MjyXgkcForm {
/** 麻精药id */
private Long id;
/** 库存编辑 */
private String kcbj;;
/** 库存 */
@Excel(name = "库存")
private String kc;;
/** 库存单位编辑 */
private String kcdwbj;
/** 库存单位 */
@Excel(name = "库存单位")
private String kcdw;
/** 库存编辑备注 */
private String kcbjbz;
@ -23,41 +27,38 @@ public class MjyXgkcForm {
/** 签名人密码 */
private String qmrmm;
public String getKcbjbz() {
return kcbjbz;
public Long getId() {
return id;
}
public void setKcbjbz(String kcbjbz) {
this.kcbjbz = kcbjbz;
public void setId(Long id) {
this.id = id;
}
public String getKcbj() {
return kcbj;
public String getKc() {
return kc;
}
public void setKcbj(String kcbj) {
this.kcbj = kcbj;
public void setKc(String kc) {
this.kc = kc;
}
public String getKcdwbj() {
return kcdwbj;
public String getKcdw() {
return kcdw;
}
public void setKcdwbj(String kcdwbj) {
this.kcdwbj = kcdwbj;
public void setKcdw(String kcdw) {
this.kcdw = kcdw;
}
public Long getId() {
return id;
public String getKcbjbz() {
return kcbjbz;
}
public void setId(Long id) {
this.id = id;
public void setKcbjbz(String kcbjbz) {
this.kcbjbz = kcbjbz;
}
public Long getQmrId() {
return qmrId;
}

+ 106
- 363
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java View File

@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hxhq.business.domain.*;
@ -12,10 +13,13 @@ import com.hxhq.business.dto.mjy.MjyListDto;
import com.hxhq.business.enums.zykgl.*;
import com.hxhq.business.form.mjy.*;
import com.hxhq.business.service.*;
import com.hxhq.business.utils.ObjectCompareUtil;
import com.hxhq.common.core.utils.StringUtils;
import com.hxhq.common.security.utils.SecurityUtils;
import com.hxhq.system.api.domain.SysUser;
import com.hxhq.system.service.ISysUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hxhq.business.mapper.MjyMapper;
@ -32,6 +36,7 @@ import org.springframework.web.bind.annotation.RequestBody;
*/
@Service
public class MjyServiceImpl extends ServiceImpl<MjyMapper, Mjy> implements IMjyService {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private ISysUserService sysUserService;
@Autowired
@ -118,7 +123,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
String jcnr = "备注:" + form.getRemark()
+ ";签名意义:申请解档"
+ ";签名人:" + qmr.getNickName();
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "申请解档", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "申请解档", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
}
/**
@ -153,7 +158,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyJcgj.setMjyId(mjy.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("申请归档");
mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue());
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
String jcnr = "备注:" + form.getRemark()
+ ";签名意义:申请归档"
+ ";签名人:" + qmr.getNickName();
@ -196,7 +201,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
String jcnr = "备注:" + form.getRemark()
+ ";签名意义:申请归档"
+ ";签名人:" + qmr.getNickName();
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "申请归档", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "申请归档", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
}
@ -230,7 +235,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyJcgj.setMjyId(mjy.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("锁定麻精药");
mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue());
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
String jcnr = "备注:" + form.getRemark()
+ ";签名意义:锁定麻精药"
+ ";签名人:" + qmr.getNickName();
@ -272,7 +277,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
String jcnr = "备注:" + form.getRemark()
+ ";签名意义:锁定麻精药"
+ ";签名人:" + qmr.getNickName();
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "锁定麻精药", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "锁定麻精药", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
}
@ -303,7 +308,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
String jcnr = "备注:" + form.getRemark()
+ ";签名意义:解锁麻精药"
+ ";签名人:" + qmr.getNickName();
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "解锁麻精药", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "解锁麻精药", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
}
/**
@ -377,7 +382,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyJcgj.setMjyId(mjy.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("处置药剂");
mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue());
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
String jcnr = "处置方式:" + mjyPlffItemFilter.get(0).getCzfs()
+ ";处置原因:" + mjyPlffItemFilter.get(0).getCzyy()
+ ";处置量:" + mjyPlffItemFilter.get(0).getCzl() + mjy.getKcdw()
@ -472,7 +477,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
+ ";处置人:" + clr.getNickName()
+ ";复核人:" + fhr.getNickName()
+ ";监督人:" + jdr.getNickName();
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "处置药剂", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "处置药剂", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
//endregion
//region 台账
@ -531,7 +536,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyJcgj.setMjyId(mjy.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("处置容器");
mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue());
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
String jcnr = "处置方式:" + mjyPlffItemFilter.get(0).getCzfs()
+ ";处置原因:" + mjyPlffItemFilter.get(0).getCzyy()
+ ";处置人:" + clr.getNickName()
@ -604,7 +609,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
+ ";处置人:" + clr.getNickName()
+ ";复核人:" + fhr.getNickName()
+ ";监督人:" + jdr.getNickName();
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "处置容器", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "处置容器", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
//endregion
//region 台账
@ -672,7 +677,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyJcgj.setMjyId(mjy.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("钥匙发放");
mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue());
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
String jcnr = "备注:" + form.getRemark()
+ ";签名意义:钥匙发放"
+ ";钥匙1领取人:" + lqr1.getNickName()
@ -745,10 +750,10 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyFfjl.setCctj(mjyOld.getCctj());
mjyFfjl.setCcwz(mjyOld.getCcwz());
mjyFfjl.setSxrq(mjyOld.getSxrq());
mjyFfjl.setCctj(mjyOld.getCctj());
mjyFfjl.setCkl(mjyOld.getKc());
mjyFfjl.setCkldw(mjyOld.getKcdw());
mjyFfjl.setFfzytj(form.getZytj());
mjyFfjl.setCkmz(form.getCkmz());
mjyFfjl.setCkmzdw(form.getCkmzdw());
mjyFfjl.setLqr1Id(lqr1.getUserId());
@ -759,9 +764,11 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyFfjl.setLqr2Mc(lqr2.getNickName());
mjyFfjl.setFfr1Mc(ffr1.getNickName());
mjyFfjl.setFfr2Mc(ffr2.getNickName());
mjyFfjl.setFfzytj(form.getZytj());
mjyFfjl.setFfrq(now);
mjyFfjl.setFfbz(form.getRemark());
mjyFfjl.setXmId(form.getXmId());
mjyFfjlService.save(mjyFfjl);
@ -773,7 +780,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
+ ";出库毛重:" + form.getCkmz() + mjyOld.getKcdw()
+ ";目的:" + form.getXmId()
+ ";备注:" + form.getRemark();
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "领取发放", JcmcysEnum.wsd.getValue(), jcnr,
mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "领取发放", JcmcysEnum.green.getValue(), jcnr,
SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName());
//endregion
@ -783,7 +790,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
"领取发放", mjyOld.getKc(), mjyOld.getKcdw(), form.getRemark());
//endregion
//region 更新发放信息
mjyOld.setCkl(mjyOld.getKc());
mjyOld.setCkldw(mjyOld.getKcdw());
@ -799,7 +806,6 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyOld.setFfr1Mc(ffr1.getNickName());
mjyOld.setFfr2Mc(ffr2.getNickName());
mjyOld.setFfr2Mc(ffr2.getNickName());
mjyOld.setKc("0");
mjyOld.setFfrq(now);
mjyOld.setFfbz(form.getRemark());
mjyOld.setFfxmId(form.getXmId());
@ -852,7 +858,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
if (mjyList.size() <= 0) {
throw new SecurityException("麻精药不是入库状态,不能发放");
}
Date now=new Date();
Date now = new Date();
for (Mjy mjy : mjyList) {
//验证库存
BigDecimal kc = new BigDecimal(mjy.getKc());
@ -878,7 +884,6 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyFfjl.setCkl(mjy.getKc());
mjyFfjl.setCkldw(mjy.getKcdw());
mjyFfjl.setFfzytj(mjyPlffItemFilter.get(0).getZytj());
mjyFfjl.setCkmz(mjyPlffItemFilter.get(0).getCkmz());
mjyFfjl.setCkmzdw(mjyPlffItemFilter.get(0).getCkmzdw());
mjyFfjl.setLqr1Id(lqr1.getUserId());
@ -889,9 +894,10 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyFfjl.setLqr2Mc(lqr2.getNickName());
mjyFfjl.setFfr1Mc(ffr1.getNickName());
mjyFfjl.setFfr2Mc(ffr2.getNickName());
mjyFfjl.setFfzytj(mjyPlffItemFilter.get(0).getZytj());
mjyFfjl.setFfrq(now);
mjyFfjl.setFfbz(mjyPlffItemFilter.get(0).getRemark());
mjyFfjl.setXmId(mjyPlffItemFilter.get(0).getXmId());
mjyFfjlList.add(mjyFfjl);
//endregion
@ -901,7 +907,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyJcgj.setMjyId(mjy.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("领取发放");
mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue());
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
String jcnr = "出库量:" + mjy.getKc()
+ ";转移条件:" + mjyPlffItemFilter.get(0).getZytj()
+ ";出库毛重:" + mjyPlffItemFilter.get(0).getCkmz() + mjy.getKcdw()
@ -940,7 +946,6 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjy.setFfr1Mc(ffr1.getNickName());
mjy.setFfr2Mc(ffr2.getNickName());
mjy.setFfr2Mc(ffr2.getNickName());
mjy.setKc("0");
mjy.setFfrq(now);
mjy.setFfbz(mjyPlffItemFilter.get(0).getRemark());
mjy.setFfxmId(mjyPlffItemFilter.get(0).getXmId());
@ -982,141 +987,34 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
}
List<MjyJcgj> mjyJcgjList = new ArrayList<>();
//region 名称
mjyOld.setMcbj(form.getMcbj());
if (!mjyOld.getMc().equals(form.getMcbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("申请编辑");
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:名称"
+ ";原值:" + mjyOld.getMc()
+ ";新值:" + form.getMcbj()
+ ";备注:" + form.getBjbz();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
//region 浓度
mjyOld.setNdbj(form.getNdbj());
if (!mjyOld.getNd().equals(form.getNdbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("申请编辑");
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:浓度"
+ ";原值:" + mjyOld.getNd()
+ ";新值:" + form.getNdbj()
+ ";备注:" + form.getBjbz();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
//region 浓度单位
mjyOld.setNddwbj(form.getNddwbj());
if (!mjyOld.getNddw().equals(form.getNddwbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("申请编辑");
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:浓度单位"
+ ";原值:" + mjyOld.getNddw()
+ ";新值:" + form.getNddwbj()
+ ";备注:" + form.getBjbz();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
//region 失效日期
mjyOld.setSxrqbj(form.getSxrqbj());
if (!mjyOld.getSxrq().equals(form.getSxrqbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("申请编辑");
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:失效日期"
+ ";原值:" + mjyOld.getSxrq()
+ ";新值:" + form.getSxrqbj()
+ ";备注:" + form.getBjbz();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
//region 存储条件
mjyOld.setCctjbj(form.getCctjbj());
if (!mjyOld.getCctj().equals(form.getCctjbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("申请编辑");
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:存储条件"
+ ";原值:" + mjyOld.getCctj()
+ ";新值:" + form.getCctjbj()
+ ";备注:" + form.getBjbz();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(mjyOld, form);
if (fieldChanges.size() == 0) {
throw new SecurityException("你没有修改任何内容");
}
//endregion
//region 存储位置
mjyOld.setCcwzbj(form.getCcwzbj());
if (!mjyOld.getCcwz().equals(form.getCcwzbj())) {
for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("申请编辑");
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:存储位置"
+ ";原值:" + mjyOld.getCcwz()
+ ";新值:" + form.getCcwzbj()
+ ";备注:" + form.getBjbz();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
mjyJcgj.setJcnr(fieldChange.toString());
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
mjyOld.setNdbj(form.getNdbj());
}
//endregion
if (mjyJcgjList.size() > 0) {
mjyOld.setBjbz(form.getBjbz());
mjyOld.setBjrId(qmr.getUserId());
mjyOld.setBjrMc(qmr.getNickName());
mjyOld.setBjzt(BjEnum.shz.getValue());
this.updateById(mjyOld);
mjyJcgjService.saveBatch(mjyJcgjList);
} else {
throw new SecurityException("你没有修改任何内容");
}
mjyOld.setMcbj(form.getMc());
mjyOld.setNdbj(form.getNd());
mjyOld.setNddwbj(form.getNddw());
mjyOld.setSxrqbj(form.getSxrq());
mjyOld.setCctjbj(form.getCctj());
mjyOld.setCcwzbj(form.getCcwz());
mjyOld.setBjbz(form.getBjbz());
mjyOld.setBjrId(qmr.getUserId());
mjyOld.setBjrMc(qmr.getNickName());
mjyOld.setBjzt(BjEnum.shz.getValue());
this.updateById(mjyOld);
mjyJcgjService.saveBatch(mjyJcgjList);
}
/**
@ -1142,136 +1040,33 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
if (!(mjyOld.getZjzt().equals(ZjztEnum.rk.getValue()) || mjyOld.getZjzt().equals(ZjztEnum.yff.getValue()))) {
throw new SecurityException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能审核编辑");
}
List<MjyJcgj> mjyJcgjList = new ArrayList<>();
//region 名称
if (!mjyOld.getMc().equals(form.getMcbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:名称"
+ ";原值:" + mjyOld.getMc()
+ ";新值:" + form.getMcbj()
+ ";修改备注:" + mjyOld.getBjbz()
+ ";审核备注:" + form.getRemark();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
//region 浓度
if (!mjyOld.getNd().equals(form.getNdbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:浓度"
+ ";原值:" + mjyOld.getNd()
+ ";新值:" + form.getNdbj()
+ ";修改备注:" + mjyOld.getBjbz()
+ ";审核备注:" + form.getRemark();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
//region 浓度单位
if (!mjyOld.getNddw().equals(form.getNddwbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:浓度单位"
+ ";原值:" + mjyOld.getNddw()
+ ";新值:" + form.getNddwbj()
+ ";修改备注:" + mjyOld.getBjbz()
+ ";审核备注:" + form.getRemark();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
//region 失效日期
if (!mjyOld.getSxrq().equals(form.getSxrqbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:失效日期"
+ ";原值:" + mjyOld.getSxrq()
+ ";新值:" + form.getSxrqbj()
+ ";修改备注:" + mjyOld.getBjbz()
+ ";审核备注:" + form.getRemark();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
//region 存储条件
if (!mjyOld.getCctj().equals(form.getCctjbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:存储条件"
+ ";原值:" + mjyOld.getCctj()
+ ";新值:" + form.getCctjbj()
+ ";修改备注:" + mjyOld.getBjbz()
+ ";审核备注:" + form.getRemark();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
//region 稽查轨迹
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
if (form.getQmyy().equals("同意编辑")) {
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
} else {
mjyJcgj.setJcmcys(JcmcysEnum.red.getValue());
}
mjyJcgj.setJcnr("申请备注:" + mjyOld.getBjbz() + ";审核备注:" + form.getRemark());
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjService.save(mjyJcgj);
//endregion
//region 存储位置
if (!mjyOld.getCcwz().equals(form.getCcwzbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:存储位置"
+ ";原值:" + mjyOld.getCcwz()
+ ";新值:" + form.getCcwzbj()
+ ";修改备注:" + mjyOld.getBjbz()
+ ";审核备注:" + form.getRemark();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
mjyOld.setNdbj(form.getNdbj());
}
//endregion
//region 更新
if (form.getQmyy().equals("同意编辑")) {
mjyOld.setCcwz(form.getCcwzbj());
mjyOld.setCctj(form.getCctjbj());
mjyOld.setSxrq(form.getSxrqbj());
mjyOld.setNddw(form.getNddwbj());
mjyOld.setNd(form.getNdbj());
mjyOld.setMc(form.getMcbj());
mjyOld.setCcwz(mjyOld.getCcwzbj());
mjyOld.setCctj(mjyOld.getCctjbj());
mjyOld.setSxrq(mjyOld.getSxrqbj());
mjyOld.setNddw(mjyOld.getNddwbj());
mjyOld.setNd(mjyOld.getNdbj());
mjyOld.setMc(mjyOld.getMcbj());
}
//清空编辑信息
mjyOld.setMcbj(null);
mjyOld.setNddwbj(null);
mjyOld.setNdbj(null);
@ -1283,14 +1078,12 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
mjyOld.setBjrMc(null);
mjyOld.setBjzt(BjEnum.wbj.getValue());
this.updateById(mjyOld);
if (mjyJcgjList.size() > 0) {
mjyJcgjService.saveBatch(mjyJcgjList);
}
//endregion
}
/**
* 修改库存
* 修改库存 ok
*
* @param form
*/
@ -1312,64 +1105,39 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
if (!(mjyOld.getZjzt().equals(ZjztEnum.rk.getValue()) || mjyOld.getZjzt().equals(ZjztEnum.yff.getValue()))) {
throw new SecurityException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能修改库存");
}
List<MjyJcgj> mjyJcgjList = new ArrayList<>();
//region 库存
mjyOld.setKcbj(form.getKcbj());
if (!mjyOld.getKc().equals(form.getKcbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("修改库存申请");
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:库存"
+ ";原值:" + mjyOld.getKc()
+ ";新值:" + form.getKcbj()
+ ";修改备注:" + form.getKcbjbz();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(mjyOld, form);
if (fieldChanges.size() == 0) {
throw new SecurityException("你没有修改任何内容");
}
//endregion
//region 库存单位
mjyOld.setKcdwbj(form.getKcdwbj());
if (!mjyOld.getKcdw().equals(form.getKcdwbj())) {
List<MjyJcgj> mjyJcgjList = new ArrayList<>();
//region 稽查轨迹
for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc("修改库存申请");
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:库存单位"
+ ";原值:" + mjyOld.getKcdw()
+ ";新值:" + form.getKcdwbj()
+ ";备注:" + form.getKcbjbz();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
mjyJcgj.setJcnr(fieldChange.toString());
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
}
//endregion
mjyOld.setKcdwbj(form.getKcdw());
mjyOld.setKcbj(form.getKc());
mjyOld.setKcbjrId(qmr.getUserId());
mjyOld.setKcbjrMc(qmr.getNickName());
mjyOld.setKcbjzt(KcbjEnum.shz.getValue());
mjyOld.setKcbjbz(form.getKcbjbz());
this.updateById(mjyOld);
mjyJcgjService.saveBatch(mjyJcgjList);
if (mjyJcgjList.size() > 0) {
mjyOld.setKcbjrId(qmr.getUserId());
mjyOld.setKcbjrMc(qmr.getNickName());
mjyOld.setKcbjzt(KcbjEnum.shz.getValue());
mjyOld.setKcbjbz(form.getKcbjbz());
this.updateById(mjyOld);
mjyJcgjService.saveBatch(mjyJcgjList);
} else {
throw new SecurityException("你没有修改任何内容");
}
}
/**
* 审核修改库存
* 审核修改库存 ok
*
* @param form
*/
@ -1391,67 +1159,42 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
if (!(mjyOld.getZjzt().equals(ZjztEnum.rk.getValue()) || mjyOld.getZjzt().equals(ZjztEnum.yff.getValue()))) {
throw new SecurityException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能审核修改库存");
}
List<MjyJcgj> mjyJcgjList = new ArrayList<>();
//region 库存
if (!mjyOld.getKc().equals(form.getKcbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:库存"
+ ";原值:" + mjyOld.getKc()
+ ";新值:" + form.getKcbj()
+ ";申请备注:" + mjyOld.getKcbjbz()
+ ";审核备注:" + form.getRemark();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
mjyOld.setKc(form.getKcbj());
//region 稽查轨迹
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
if (form.getQmyy().equals("同意修改库存")) {
mjyJcgj.setJcmcys(JcmcysEnum.green.getValue());
} else {
mjyJcgj.setJcmcys(JcmcysEnum.red.getValue());
}
mjyJcgj.setJcnr("申请备注:" + mjyOld.getKcbjbz() + ";审核备注:" + form.getRemark());
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjService.save(mjyJcgj);
//endregion
//region 库存单位
if (!mjyOld.getKcdw().equals(form.getKcdwbj())) {
MjyJcgj mjyJcgj = new MjyJcgj();
mjyJcgj.setMjyId(mjyOld.getId());
mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue());
mjyJcgj.setJcmc(form.getQmyy());
mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue());
String jcnr = "字段名:库存单位"
+ ";原值:" + mjyOld.getKcdw()
+ ";新值:" + form.getKcdwbj()
+ ";申请备注:" + mjyOld.getKcbjbz()
+ ";审核备注:" + form.getRemark();
mjyJcgj.setJcnr(jcnr);
mjyJcgj.setQmrId(qmr.getUserId());
mjyJcgj.setQmrMc(qmr.getNickName());
mjyJcgjList.add(mjyJcgj);
mjyOld.setKcdw(form.getKcdwbj());
//region 更新
if (form.getQmyy().equals("同意修改库存")) {
mjyOld.setKcdw(mjyOld.getKcdwbj());
mjyOld.setKc(mjyOld.getKcbj());
}
//endregion
mjyOld.setKcbj(null);
mjyOld.setKcdwbj(null);
mjyOld.setKcbjbz(null);
mjyOld.setKcbjzt(KcbjEnum.wbj.getValue());
this.updateById(mjyOld);
//endregion
//region 台账
if (form.getQmyy().equals("同意修改库存")) {
mjyTzService.saveTz(mjyOld.getId(), "", "",
"", "", qmr.getUserId(), qmr.getNickName(),
"修改库存", form.getKcbj(), form.getKcdwbj(), mjyOld.getKcbjbz());
"修改库存", form.getKc(), form.getKcdw(), mjyOld.getKcbjbz());
}
//endregion
if (mjyJcgjList.size() > 0) {
mjyJcgjService.saveBatch(mjyJcgjList);
}
}
}

+ 215
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java View File

@ -0,0 +1,215 @@
package com.hxhq.business.utils;
import com.alibaba.fastjson.JSONObject;
import com.hxhq.common.core.utils.DateUtils;
import com.hxhq.common.core.utils.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author tanfei
*/
public class ObjectCompareUtil {
private static final Logger LOG = LoggerFactory.getLogger(ObjectCompareUtil.class.getName());
public static void main(String[] args) {
}
/**
* 对比两个对象的差异
*
* @param oldObj 原始对象
* @param newObj 新对象
* @return 字段变化列表
*/
public static List<FieldChange> compareObjects(Object oldObj, Object newObj) {
List<FieldChange> changes = new ArrayList<>();
if (oldObj == null || newObj == null) {
return changes;
}
// if (!oldObj.getClass().equals(newObj.getClass())) {
// throw new IllegalArgumentException("对比的对象类型必须相同");
// }
// 获取所有字段
Field[] fields = oldObj.getClass().getDeclaredFields();
for (Field field : fields) {
try {
field.setAccessible(true);
// 如果没有excel注解跳过字段
if (StringUtils.isBlank(getFieldLabel(field))) {
continue;
}
String name = field.getName();
Object oldValue = field.get(oldObj);
String oldValueStr = "";
String newValueStr = "";
if (field.getType().getName().equals("java.util.Date")) {
oldValueStr = autoConvert(oldValue, "yyyy-MM-dd HH:mm:ss");
} else {
oldValueStr = oldValue.toString();
}
try {
Object newValue = JSONObject.parseObject(JSONObject.toJSONString(newObj)).get(name);
if (field.getType().getName().equals("java.util.Date")) {
newValueStr = autoConvert(newValue, "yyyy-MM-dd HH:mm:ss");
} else {
newValueStr = newValue.toString();
}
if (StringUtils.isNoneBlank(oldValueStr) && StringUtils.isNoneBlank(newValueStr)) {
// 对比字段值
if (!Objects.equals(oldValue, newValue)) {
FieldChange change = new FieldChange();
change.setFieldName(field.getName());
change.setFieldLabel(getFieldLabel(field));
change.setOldValue(oldValueStr);
change.setNewValue(newValueStr);
change.setFieldType(field.getType().getSimpleName());
changes.add(change);
}
}
} catch (Exception ex) {
// 忽略没有的字段
}
} catch (IllegalAccessException e) {
// 忽略无法访问的字段
}
}
return changes;
}
/**
* 自动识别时间戳类型并转换
*
* @param timestamp 时间戳支持Long, Integer, String
* @param pattern 日期格式
* @return 格式化后的日期字符串
*/
public static String autoConvert(Object timestamp, String pattern) {
if (timestamp == null) {
return null;
}
if (timestamp instanceof Date) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(timestamp);
}
long millis = 0L;
if (timestamp instanceof Long) {
// 检查是毫秒还是秒
Long ts = (Long) timestamp;
if (ts > 1000000000000L) { // 毫秒时间戳
millis = ts;
} else { // 秒时间戳
millis = ts * 1000L;
}
} else if (timestamp instanceof Integer) {
millis = ((Integer) timestamp) * 1000L;
} else if (timestamp instanceof String) {
try {
String tsStr = (String) timestamp;
if (tsStr.length() == 10) { // 秒时间戳
millis = Long.parseLong(tsStr) * 1000L;
} else if (tsStr.length() == 13) { // 毫秒时间戳
millis = Long.parseLong(tsStr);
} else {
throw new IllegalArgumentException("不支持的时间戳格式: " + tsStr);
}
} catch (NumberFormatException e) {
throw new IllegalArgumentException("时间戳格式错误: " + timestamp, e);
}
} else {
throw new IllegalArgumentException("不支持的时间戳类型: " + timestamp.getClass());
}
Date date = new Date(millis);
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(date);
}
/**
* 获取字段的中文描述如果有@Excel注解
*/
private static String getFieldLabel(Field field) {
// 若依的@Excel注解可以获取name属性
if (field.isAnnotationPresent(com.hxhq.common.core.annotation.Excel.class)) {
com.hxhq.common.core.annotation.Excel excel = field.getAnnotation(com.hxhq.common.core.annotation.Excel.class);
return excel.name();
}
return null;
}
/**
* 字段变化实体类
*/
public static class FieldChange {
private String fieldName; // 字段名
private String fieldLabel; // 字段描述
private Object oldValue; // 旧值
private Object newValue; // 新值
private String fieldType; // 字段类型
// getter和setter
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
public String getFieldLabel() {
return fieldLabel;
}
public void setFieldLabel(String fieldLabel) {
this.fieldLabel = fieldLabel;
}
public Object getOldValue() {
return oldValue;
}
public void setOldValue(Object oldValue) {
this.oldValue = oldValue;
}
public Object getNewValue() {
return newValue;
}
public void setNewValue(Object newValue) {
this.newValue = newValue;
}
public String getFieldType() {
return fieldType;
}
public void setFieldType(String fieldType) {
this.fieldType = fieldType;
}
@Override
public String toString() {
return String.format("字段名:%s;原值:%s;新值:%s", fieldLabel, oldValue, newValue);
}
}
}

Loading…
Cancel
Save