ReagentServiceImpl.java
// 更新试剂信息
@Override
public void update(@NotNull Reagent reagent) {
if (reagent == null) return;
Reagent storeReagent = reagentMapper.selectById(reagent.getId());
if (storeReagent == null) return;
// 两个对象的内容不相同,才进行更新
if (!storeReagent.equals(reagent)) {
// 只更新有修改过的属性,通过数据新旧值对比,如果数据没有变化,设置为 null,就不会进行更新
if (storeReagent.getReagentCategory() != null && reagent.getReagentCategory() != null &&
storeReagent.getReagentCategory().equals(reagent.getReagentCategory())) {
reagent.setReagentCategory(null);
}
if (storeReagent.getReagentNo() != null && reagent.getReagentNo() != null &&
storeReagent.getReagentNo().equals(reagent.getReagentNo())) {
reagent.setReagentNo(null);
}
if (storeReagent.getReagentName() != null && reagent.getReagentName() != null &&
storeReagent.getReagentName().equals(reagent.getReagentName())) {
reagent.setReagentName(null);
}
if (storeReagent.getReagentSpec() != null && reagent.getReagentSpec() != null &&
storeReagent.getReagentSpec().equals(reagent.getReagentSpec())) {
reagent.setReagentSpec(null);
}
if (storeReagent.getReagentUnit() != null && reagent.getReagentUnit() != null &&
storeReagent.getReagentUnit().equals(reagent.getReagentUnit())) {
reagent.setReagentUnit(null);
}
if (storeReagent.getBatchNo() != null && reagent.getBatchNo() != null &&
storeReagent.getBatchNo().equals(reagent.getBatchNo())) {
reagent.setBatchNo(null);
}
if (storeReagent.getManufacturer() != null && reagent.getManufacturer() != null &&
storeReagent.getManufacturer().equals(reagent.getManufacturer())) {
reagent.setManufacturer(null);
}
if (storeReagent.getSupplier() != null && reagent.getSupplier() != null &&
storeReagent.getSupplier().equals(reagent.getSupplier())) {
reagent.setSupplier(null);
}
if (storeReagent.getAmount() != null && reagent.getAmount() != null &&
storeReagent.getAmount().equals(reagent.getAmount())) {
reagent.setAmount(null);
}
if (storeReagent.getPrice() != null && reagent.getPrice() != null &&
storeReagent.getPrice().equals(reagent.getPrice())) {
reagent.setPrice(null);
}
if (storeReagent.getTotal() != null && reagent.getTotal() != null &&
storeReagent.getTotal().equals(reagent.getTotal())) {
reagent.setTotal(null);
}
if (storeReagent.getProductionDate() != null && reagent.getProductionDate() != null &&
storeReagent.getProductionDate().equals(reagent.getProductionDate())) {
reagent.setProductionDate(null);
}
if (storeReagent.getReceiveDate() != null && reagent.getReceiveDate() != null &&
storeReagent.getReceiveDate().equals(reagent.getReceiveDate())) {
reagent.setReceiveDate(null);
}
if (storeReagent.getValidityDate() != null && reagent.getValidityDate() != null &&
storeReagent.getValidityDate().equals(reagent.getValidityDate())) {
reagent.setValidityDate(null);
}
if (storeReagent.getDeptId() != null && reagent.getDeptId() != null &&
storeReagent.getDeptId().equals(reagent.getDeptId())) {
reagent.setDeptId(null);
}
if (storeReagent.getPurpose() != null && reagent.getPurpose() != null &&
storeReagent.getPurpose().equals(reagent.getPurpose())) {
reagent.setPurpose(null);
}
if (storeReagent.getLocation() != null && reagent.getLocation() != null &&
storeReagent.getLocation().equals(reagent.getLocation())) {
reagent.setLocation(null);
}
if (storeReagent.getRemark() != null && reagent.getRemark() != null &&
storeReagent.getRemark().equals(reagent.getRemark())) {
reagent.setRemark(null);
}
if (storeReagent.getMaterialNo() != null && reagent.getMaterialNo() != null &&
storeReagent.getMaterialNo().equals(reagent.getMaterialNo())) {
reagent.setMaterialNo(null);
}
if (storeReagent.getSignCode() != null && reagent.getSignCode() != null &&
storeReagent.getSignCode().equals(reagent.getSignCode())) {
reagent.setSignCode(null);
}
reagentMapper.update(reagent);
}
}
ReagentMapper.xml
<!-- 更新试剂信息 -->
<update id="update">
update Reagent
<set>
<if test="reagentCategory != null">
rea_TypeName = #{reagentCategory},
</if>
<if test="reagentNo != null">
</if>
<if test="reagentName != null">
rea_Name = #{reagentName},
</if>
<if test="reagentSpec != null">
rea_Spec = #{reagentSpec},
</if>
<if test="reagentUnit != null">
rea_unit = #{reagentUnit},
</if>
<if test="batchNo != null">
rea_BatchNo = #{batchNo},
</if>
<if test="manufacturer != null">
rea_ManufacturerName = #{manufacturer},
</if>
<if test="supplier != null">
rea_ProviderName = #{supplier},
</if>
<if test="amount != null">
rea_Amount = #{amount},
</if>
<if test="price != null">
</if>
<if test="total != null">
rea_SubTotal = #{total},
</if>
<if test="productionDate != null">
rea_ProduceDate = #{productionDate},
</if>
<if test="receiveDate != null">
</if>
<if test="validityDate != null">
rea_OverdueDate = #{validityDate},
</if>
<if test="deptId != null">
rea_DeptID = #{deptId},
</if>
<if test="purpose != null">
</if>
<if test="location != null">
rea_Location = #{location},
</if>
<if test="remark != null">
rea_Memo = #{remark},
</if>
<if test="materialNo != null">
rea_MaterialID = #{materialNo},
</if>
<if test="signCode != null">
rea_br = #{signCode},
</if>
</set>
where rea_ID = #{id}
</update>