diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateSupplierInfoRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateSupplierInfoRequest.java new file mode 100644 index 00000000..9a131d12 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateSupplierInfoRequest.java @@ -0,0 +1,57 @@ +package me.zhengjie.modules.wms.bd.request; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import lombok.Data; +import me.zhengjie.modules.wms.bd.domain.SupplierInfo; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.List; + +/** + * @author 黄星星 + * @date 2019-08-18 + */ +@Data +public class UpdateSupplierInfoRequest implements Serializable { + + + private Long id; + + // 供应商名称 + private String supplierName; + + // 期初预收款 + private Long initialPreMoney; + + // 供应商编号 + private String supplierCode; + + // 创建时间 + private Timestamp createTime; + + // 更新时间 + private Timestamp updateTime; + + // 备注 + private String remark; + + // 供应商地址地址数组[{“province”:””,”city”:””,”area”:””,”address_detail”:””,”sort”:””}] + private List supplierAddress; + + // 供应商联系人[{“sort”:””,”name”:””,”mobile”:””,”phone”:””,”email”:””,”qq”:””,”weixin”:””,”firstTag”:””}]firstTag 0:非首要联系人 1:首要联系人 + private List supplierContact; + + private Boolean status; + + // 供应商类别主键 + private Long supplierCategoryId; + + // 供应商类别名称 + private String supplierCategoryName; + + public void copy(SupplierInfo source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/SupplierInfoController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/SupplierInfoController.java index 78ed026f..3b6fafc3 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/SupplierInfoController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/SupplierInfoController.java @@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.bd.rest; import me.zhengjie.aop.log.Log; import me.zhengjie.modules.wms.bd.domain.SupplierInfo; import me.zhengjie.modules.wms.bd.request.CreateSupplierInfoRequest; +import me.zhengjie.modules.wms.bd.request.UpdateSupplierInfoRequest; import me.zhengjie.modules.wms.bd.service.SupplierInfoService; import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; @@ -48,7 +49,6 @@ public class SupplierInfoController { return new ResponseEntity(supplierCode,HttpStatus.OK); } - @Log("查询供应商资料列表") @ApiOperation(value = "查询供应商资料列表") @GetMapping(value = "/querySupplierInfoList") @@ -75,10 +75,10 @@ public class SupplierInfoController { @Log("修改供应商资料") @ApiOperation(value = "修改供应商资料") - @PutMapping(value = "/supplierInfo") + @PostMapping(value = "/updateSupplierInfo") @PreAuthorize("hasAnyRole('ADMIN','BDSUPPLIERINFO_ALL','BDSUPPLIERINFO_EDIT')") - public ResponseEntity update(@Validated @RequestBody SupplierInfo resources){ - supplierInfoService.update(resources); + public ResponseEntity updateSupplierInfo(@RequestBody UpdateSupplierInfoRequest updateSupplierInfoRequest){ + supplierInfoService.updateSupplierInfo(updateSupplierInfoRequest); return new ResponseEntity(HttpStatus.NO_CONTENT); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/SupplierInfoService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/SupplierInfoService.java index 2c0bf4d1..1fd55afb 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/SupplierInfoService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/SupplierInfoService.java @@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.bd.service; import me.zhengjie.modules.wms.bd.domain.SupplierInfo; import me.zhengjie.modules.wms.bd.request.CreateSupplierInfoRequest; +import me.zhengjie.modules.wms.bd.request.UpdateSupplierInfoRequest; import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoDTO; import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoDetailDTO; import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoQueryCriteria; @@ -52,10 +53,10 @@ public interface SupplierInfoService { /** * update - * @param resources + * @param updateSupplierInfoRequest */ //@CacheEvict(allEntries = true) - void update(SupplierInfo resources); + void updateSupplierInfo(UpdateSupplierInfoRequest updateSupplierInfoRequest); /** * delete diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/SupplierInfoServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/SupplierInfoServiceImpl.java index a5337419..227b7c85 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/SupplierInfoServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/SupplierInfoServiceImpl.java @@ -10,6 +10,7 @@ import me.zhengjie.modules.wms.bd.repository.SupplierCategoryRepository; import me.zhengjie.modules.wms.bd.request.CreateSupplierInfoRequest; import me.zhengjie.modules.wms.bd.request.SupplierAddress; import me.zhengjie.modules.wms.bd.request.SupplierContact; +import me.zhengjie.modules.wms.bd.request.UpdateSupplierInfoRequest; import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoDetailDTO; import me.zhengjie.modules.wms.bd.service.mapper.SupplierCategoryMapper; import me.zhengjie.utils.ValidationUtil; @@ -25,7 +26,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Optional; import org.springframework.data.domain.Page; @@ -189,13 +193,60 @@ public class SupplierInfoServiceImpl implements SupplierInfoService { return supplierInfoDetailDTO; } + @Override @Transactional(rollbackFor = Exception.class) - public void update(SupplierInfo resources) { - Optional optionalBdSupplierInfo = supplierInfoRepository.findById(resources.getId()); - ValidationUtil.isNull( optionalBdSupplierInfo,"BdSupplierInfo","id",resources.getId()); - SupplierInfo supplierInfo = optionalBdSupplierInfo.get(); - supplierInfo.copy(resources); + public void updateSupplierInfo(UpdateSupplierInfoRequest updateSupplierInfoRequest) { + Long supplierInfoId = updateSupplierInfoRequest.getId(); + if(null == supplierInfoId){ + throw new BadRequestException("供应商主键不能为空!"); + } + + Long supplierCategoryId = updateSupplierInfoRequest.getSupplierCategoryId(); + if(null == supplierCategoryId){ + throw new BadRequestException("供应商类别不存在!"); + } + + Optional supplierCategoryOptional = supplierCategoryRepository.findById(supplierCategoryId); + SupplierCategory supplierCategory = supplierCategoryOptional.get(); + + // 供应商资料-供应商给你联系地址修改目标 + List supplierAddressListUpdateTarget = updateSupplierInfoRequest.getSupplierAddress(); + // 供应商资料-供应商联系方式修改目标 + List supplierContactListUpdateTarget = updateSupplierInfoRequest.getSupplierContact(); + + SupplierInfo supplierInfo = supplierInfoRepository.findByIdAndStatusTrue(supplierInfoId); + + if(null == supplierInfo){ + throw new BadRequestException("供应商不存在"); + } + + Timestamp createTime = supplierInfo.getCreateTime(); + + // 将需要修改的值复制到数据库对象中 + BeanUtils.copyProperties(updateSupplierInfoRequest, supplierInfo); + + // 判断提前获取的供应商联系地址和联系方式是否是空 + if(CollectionUtils.isEmpty(supplierAddressListUpdateTarget)){ + supplierInfo.setSupplierAddress(null); + }else{ + String supplierAddressStr = new Gson().toJson(supplierAddressListUpdateTarget); + supplierInfo.setSupplierAddress(supplierAddressStr); + } + + if(CollectionUtils.isEmpty(supplierContactListUpdateTarget)){ + supplierInfo.setSupplierContact(null); + }else{ + String supplierContactStr = new Gson().toJson(supplierContactListUpdateTarget); + supplierInfo.setSupplierContact(supplierContactStr); + } + + supplierInfo.setCreateTime(createTime); + supplierInfo.setStatus(true); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + supplierInfo.setUpdateTime(Timestamp.valueOf(sdf.format(new Date()))); + supplierInfo.setSupplierCategoryName(supplierCategory.getName()); + // 修改供应商资料 supplierInfoRepository.save(supplierInfo); }