对比新文件 |
| | |
| | | package com.gk.firework.Controller; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.gk.firework.Controller.Base.BaseController; |
| | | import com.gk.firework.Domain.*; |
| | | import com.gk.firework.Domain.Enum.ErrorCode; |
| | | import com.gk.firework.Domain.Extension.StockTotal; |
| | | import com.gk.firework.Domain.Log.JsonParams; |
| | | import com.gk.firework.Domain.Utils.BeanUtils; |
| | | import com.gk.firework.Domain.Utils.Msg; |
| | | import com.gk.firework.Domain.Utils.PageInfo; |
| | | import com.gk.firework.Domain.Utils.StringUtils; |
| | | import com.gk.firework.Domain.Vo.*; |
| | | import com.gk.firework.Service.*; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.DateFormat; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.gk.firework.Domain.Enum.ErrorCode.*; |
| | | |
| | | /** |
| | | * @author : jingjy |
| | | * @date : 2021/3/19 11:06 |
| | | */ |
| | | |
| | | @Api(tags = "库存接口") |
| | | @RestController |
| | | @RequestMapping("/stock") |
| | | public class StockController extends BaseController { |
| | | |
| | | @Autowired |
| | | private ProductService productService; |
| | | @Autowired |
| | | private UserService userService; |
| | | @Autowired |
| | | private EntryService entryService; |
| | | @Autowired |
| | | private EntryDetailService entryDetailService; |
| | | @Autowired |
| | | private StockService stockService; |
| | | @Autowired |
| | | private ProductLocusService productLocusService; |
| | | @Autowired |
| | | private EnterpriseService enterpriseService; |
| | | @Autowired |
| | | private StaticStockService staticStockService; |
| | | |
| | | |
| | | @PostMapping("/entrySingle") |
| | | @JsonParams |
| | | public Msg entrySingle(@RequestBody JSONObject jsonObject){ |
| | | Msg msg = new Msg(true); |
| | | String userId = jsonObject.getString("id"); |
| | | String type = jsonObject.getString("type"); |
| | | String date = jsonObject.getString("time"); |
| | | String rfids = jsonObject.getString("rfids"); |
| | | String transport = jsonObject.getString("cert"); |
| | | UserInfo userInfo = userService.getById(userId); |
| | | Date datetime; |
| | | DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | try { |
| | | datetime = dateFormat1.parse(date); |
| | | } catch (ParseException e) { |
| | | msg.setCode(ERROR_10003.getCode()); |
| | | msg.setMessage(ERROR_10003.getMsg()+":入库日期类型错误!"); |
| | | return msg; |
| | | } |
| | | String auth = getAuth(); |
| | | auth = StringUtils.isBlank(auth) ? "NOAUTH" : auth; |
| | | EntryOrderInfo orderInfo = entryService.generateEntryOrderInfo(type,userInfo,datetime,transport, auth); |
| | | |
| | | if (StringUtils.isBlank(userId) || StringUtils.isBlank(rfids)){ |
| | | msg.setCode(ERROR_10001.getCode()); |
| | | msg.setMessage(ERROR_10001.getMsg()+":用户信息或者流向码为空,无法入库"); |
| | | return msg; |
| | | } |
| | | if (EntryUtils.RK_ENTRY.equals(type)){ |
| | | //一般入库 |
| | | List<String>directionCodes = StringUtils.toList(rfids); |
| | | List<ProductVo> productVos = new ArrayList<>(); |
| | | List<EntryDetailInfo>detailInfos = new ArrayList<>(); |
| | | List<ProductLocusInfo>locusInfos = new ArrayList<>(); |
| | | //入库数量 |
| | | int entryNum = 0; |
| | | for (String dire:directionCodes) { |
| | | if (FireworkDeal.isNotDirectionCode(dire)){ |
| | | msg.setCode(ERROR_10004.getCode()); |
| | | msg.setMessage(ERROR_10004.getMsg()+":流向码:"+dire+" 不符合规则,无法识别!"); |
| | | return msg; |
| | | } |
| | | DirectionDetail detail = FireworkDeal.dealDirectionCode(dire); |
| | | if (productService.hasProductByDire(dire)){ |
| | | msg.setCode(ERROR_50001.getMsg()); |
| | | msg.setMessage(ERROR_50001.getMsg()+":流向码:"+dire+" 未找到相应产品信息!"); |
| | | return msg; |
| | | } |
| | | |
| | | ProductVo productVo = productService.selectVoByDirection(dire); |
| | | |
| | | EntryDetailInfo detailInfo = new EntryDetailInfo(orderInfo.getCode(),dire,productVo.getItemCode(), |
| | | productVo.getName(),productVo.getManufacturer(),new Date(),userInfo.getCompanynumber()); |
| | | if (detail.getLength() == FireworkDeal.DIRECTION_OUTSIDE){ |
| | | ProductLocusInfo productLocusInfo = new ProductLocusInfo(dire,new Date(),datetime, userInfo.getCompany(), |
| | | null,ProductLocusInfo.ENTRY_STATUS,productVo.getBoxNumber().toString()); |
| | | locusInfos.add(productLocusInfo); |
| | | } |
| | | |
| | | detailInfos.add(detailInfo); |
| | | if (detail.getBoxNo() == null){ |
| | | entryNum += 1; |
| | | }else { |
| | | entryNum += Integer.parseInt(detail.getBoxNo()); |
| | | } |
| | | |
| | | if (detail.getLength() == FireworkDeal.DIRECTION_OUTSIDE){ |
| | | FireworkDeal.getProductVos(dire, detail, detail, productVos, productVo); |
| | | }else if (detail.getLength() == FireworkDeal.DIRECTION_INSIDE){ |
| | | ProductInfo productVo1 = productService.selectByDirection(dire); |
| | | productVo1.setDirectionCode(dire); |
| | | ProductVo productVo2 = BeanUtils.copy(productVo1,ProductVo.class); |
| | | FireworkDeal.setProductVosAttribute(productVo2); |
| | | productVos.add(productVo2); |
| | | } |
| | | } |
| | | boolean flag = stockService.putInStorage(userInfo,productVos,datetime, type); |
| | | if (flag){ |
| | | orderInfo.setNum(entryNum); |
| | | entryService.save(orderInfo); |
| | | entryDetailService.saveBatch(detailInfos); |
| | | productLocusService.insertBatch(locusInfos); |
| | | }else { |
| | | msg.setCode(ERROR_40001.getCode()); |
| | | msg.setMessage(ERROR_40001.getMsg()+"库存入库失败"); |
| | | return msg; |
| | | } |
| | | } |
| | | |
| | | return msg; |
| | | } |
| | | |
| | | @PostMapping("/entryBatch") |
| | | @JsonParams |
| | | public List<Msg> entryBatch(@RequestBody JSONArray jsonArray){ |
| | | List<Msg> msgList = new ArrayList<>(); |
| | | if (jsonArray.size() < 1){ |
| | | return null; |
| | | } |
| | | |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | JSONObject jsonObject = jsonArray.getJSONObject(i); |
| | | msgList.add(entrySingle(jsonObject)); |
| | | } |
| | | |
| | | return msgList; |
| | | } |
| | | |
| | | @ApiOperation(value = "通用入库",response = Msg.class) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "JSONArray",value = "json数组,json对象为:{id:'用户ID',rfids:'流向码',time:'入库时间',cert:'运输证',type:'入库类型'}"), |
| | | }) |
| | | @PostMapping("/entry") |
| | | @JsonParams |
| | | public Msg entryStock(@RequestBody JSONArray jsonArray){ |
| | | if (jsonArray.size() > 0) |
| | | { |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // 遍历 jsonArray 数组,把每一个对象转成 json 对象 |
| | | JSONObject jsonObject = jsonArray.getJSONObject(i); |
| | | String userId = jsonObject.getString("id"); |
| | | String directionCodeStr = jsonObject.getString("rfids"); |
| | | String datetime = jsonObject.getString("time"); |
| | | String transport = jsonObject.getString("cert"); |
| | | Date date; |
| | | DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | try { |
| | | date = dateFormat.parse(datetime); |
| | | } catch (ParseException e) { |
| | | return new Msg(ERROR_10003,"入库日期类型错误!"); |
| | | } |
| | | //type 1.常规入库; 2.退货入库 |
| | | String type = jsonObject.getString("type"); |
| | | if (StringUtils.isBlank(type)){ |
| | | return new Msg(ERROR_10001,"入库类型不能为空"); |
| | | } |
| | | |
| | | if (StringUtils.isBlank(directionCodeStr)){ |
| | | return new Msg(ERROR_10001,"流向码不能为空"); |
| | | } |
| | | |
| | | boolean isUser = userService.checkUserById(userId); |
| | | if (!isUser){ |
| | | return new Msg(ERROR_50001,"未找到相关用户信息,不能入库!"); |
| | | } |
| | | UserInfo userInfo = userService.getById(userId); |
| | | |
| | | //判断是否存在同时间同操作人入库记录 |
| | | boolean exist = entryService.isEntryExist(datetime,userInfo); |
| | | if (exist){ continue; } |
| | | |
| | | String auth = getAuth(); |
| | | auth = StringUtils.isBlank(auth) ? "NOAUTH" : auth; |
| | | List<String> directionCodes = StringUtils.toList(directionCodeStr); |
| | | EntryOrderInfo orderInfo = entryService.generateEntryOrderInfo(type,userInfo,date,transport, auth); |
| | | int boxNum = 0; |
| | | List<EntryDetailInfo>detailInfos = new ArrayList<>(); |
| | | List<ProductLocusInfo>locusInfos = new ArrayList<>(); |
| | | |
| | | List<ProductVo> productVos = new ArrayList<>(); |
| | | for (String dire:directionCodes) { |
| | | if (FireworkDeal.isNotDirectionCode(dire)){ |
| | | return new Msg(ERROR_10004,"流向码:"+dire+" 不符合规则,无法识别!"); |
| | | } |
| | | DirectionDetail detail = FireworkDeal.dealDirectionCode(dire); |
| | | if (productService.hasProductByDire(dire)){ |
| | | return new Msg(ERROR_50001,":流向码:"+dire+" 未找到相应产品信息!"); |
| | | } |
| | | ProductVo productVo = productService.selectVoByDirection(dire); |
| | | EntryDetailInfo detailInfo = new EntryDetailInfo(orderInfo.getCode(),dire,productVo.getItemCode(), |
| | | productVo.getName(),productVo.getManufacturer(),new Date(),userInfo.getCompanynumber()); |
| | | if (detail.getLength() == FireworkDeal.DIRECTION_OUTSIDE){ |
| | | ProductLocusInfo productLocusInfo = new ProductLocusInfo(dire,new Date(),date, userInfo.getCompany(), |
| | | null,ProductLocusInfo.ENTRY_STATUS,productVo.getBoxNumber().toString()); |
| | | locusInfos.add(productLocusInfo); |
| | | } |
| | | if (detail.getLength() == FireworkDeal.DIRECTION_OUTSIDE){ |
| | | FireworkDeal.getProductVos(dire, detail, detail, productVos, productVo); |
| | | detailInfo.setBoxcode(detail.getOriginalCode()); |
| | | detailInfo.setNum(Integer.parseInt(detail.getBoxNo())); |
| | | boxNum += Integer.parseInt(detail.getBoxNo()); |
| | | }else if (detail.getLength() == FireworkDeal.DIRECTION_INSIDE){ |
| | | ProductInfo productVo1 = productService.selectByDirection(dire); |
| | | ProductVo productVo2 = BeanUtils.copy(productVo1,ProductVo.class); |
| | | productVo2.setItemCode(dire.substring(0,10)); |
| | | productVo2.setDirectionCode(dire); |
| | | productVos.add(productVo2); |
| | | detailInfo.setNum(1); |
| | | boxNum +=1; |
| | | } |
| | | detailInfos.add(detailInfo); |
| | | } |
| | | orderInfo.setNum(boxNum); |
| | | entryService.save(orderInfo); |
| | | entryDetailService.saveBatch(detailInfos); |
| | | productLocusService.insertBatch(locusInfos); |
| | | boolean flag = stockService.putInStorage(userInfo,productVos,date,type); |
| | | } |
| | | } |
| | | return success(); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param jsonArray [{"id":"用户ID","type":"快速入库填1","time":"时间","cert":"运输证编号","rfidfirst":"第一箱的流向码","rfidlast":"最后一箱的流向码"}] |
| | | * @return msg |
| | | */ |
| | | @ApiOperation(value = "快速入库",response = Msg.class) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "JSONArray",value = "json数组,json对象为:{\"id\":\"用户ID\",\"type\":\"快速入库填1\",\"time\":\"时间\",\"cert\":\"运输证编号\",\"rfidfirst\":\"第一箱的流向码\",\"rfidlast\":\"最后一箱的流向码\"}"), |
| | | }) |
| | | @PostMapping("/entryQuick") |
| | | @JsonParams |
| | | public Msg entryQuick(@RequestBody JSONArray jsonArray){ |
| | | Msg msg = new Msg(true); |
| | | if (jsonArray.size() > 0) |
| | | { |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // 遍历 jsonArray 数组,把每一个对象转成 json 对象 |
| | | JSONObject jsonObject = jsonArray.getJSONObject(i); |
| | | String userId = jsonObject.getString("id"); |
| | | String directionCodeFirst = jsonObject.getString("rfidfirst"); |
| | | String directionCodeLast = jsonObject.getString("rfidlast"); |
| | | String datetime = jsonObject.getString("time"); |
| | | String transport = jsonObject.getString("cert"); |
| | | //type 1.常规入库; 2.退货入库 |
| | | String type = "1"; |
| | | Date date; |
| | | DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | try { |
| | | date = dateFormat.parse(datetime); |
| | | } catch (ParseException e) { |
| | | msg.setCode(ERROR_10003.getCode()); |
| | | msg.setMessage(ERROR_10003.getMsg()+":入库日期类型错误!"); |
| | | return msg; |
| | | } |
| | | |
| | | if (!(FireworkDeal.is22Characters(directionCodeFirst) && FireworkDeal.is22Characters(directionCodeLast))){ |
| | | msg.setCode(ERROR_10004.getCode()); |
| | | msg.setMessage(ERROR_10004.getMsg()+":流向码首尾不符合规则,无法快速入库!"); |
| | | return msg; |
| | | } |
| | | boolean isUser = userService.checkUserById(userId); |
| | | if (!isUser){ |
| | | msg.setCode(ERROR_50001.getCode()); |
| | | msg.setMessage(ERROR_50001.getMsg()+":未找到相关用户信息,不能入库!"); |
| | | return msg; |
| | | } |
| | | UserInfo userInfo = userService.getById(userId); |
| | | |
| | | //判断是否存在同时间同操作人入库记录 |
| | | boolean exist = entryService.isEntryExist(datetime,userInfo); |
| | | if (exist){ |
| | | continue; |
| | | } |
| | | |
| | | String auth = getAuth(); |
| | | auth = StringUtils.isBlank(auth) ? "NOAUTH" : auth; |
| | | EntryOrderInfo orderInfo = entryService.generateEntryOrderInfo(type,userInfo,date,transport, auth); |
| | | |
| | | List<EntryDetailInfo>detailInfos = new ArrayList<>(); |
| | | List<ProductLocusInfo>locusInfos = new ArrayList<>(); |
| | | |
| | | List<ProductVo> productVos = new ArrayList<>(); |
| | | |
| | | DirectionDetail detailFirst = FireworkDeal.dealDirectionCode(directionCodeFirst); |
| | | DirectionDetail detailLast = FireworkDeal.dealDirectionCode(directionCodeLast); |
| | | if (!detailFirst.getItemCode().equals(detailLast.getItemCode())){ |
| | | msg.setCode(ERROR_10004.getCode()); |
| | | msg.setMessage(ERROR_10004.getMsg()+":首尾商品编码不一致,无法快速入库"); |
| | | return msg; |
| | | } |
| | | |
| | | if (Integer.parseInt(detailFirst.getSerialNo()) > Integer.parseInt(detailLast.getSerialNo())){ |
| | | msg.setCode(ERROR_10004.getCode()); |
| | | msg.setMessage(ERROR_10004.getMsg()+":首位商品序号大于末位,无法快速入库"); |
| | | return msg; |
| | | } |
| | | |
| | | ProductVo productVo = productService.selectVoByDirection(directionCodeFirst); |
| | | |
| | | Integer firstNo = Integer.parseInt(detailFirst.getSerialNo()); |
| | | Integer lastNo = Integer.parseInt(detailLast.getSerialNo()); |
| | | int perBoxNum = Integer.parseInt(detailFirst.getBoxNo()); |
| | | |
| | | int boxNum = ((lastNo-firstNo)/perBoxNum)+1; |
| | | int totalNum = 0; |
| | | |
| | | for (int j=1;j<= boxNum;j++){ |
| | | String dire = detailFirst.getItemCode()+detailFirst.getDateCode()+ String.format("%05d", firstNo)+String.format("%03d", perBoxNum); |
| | | EntryDetailInfo detailInfo = new EntryDetailInfo(orderInfo.getCode(),dire,productVo.getItemCode(), |
| | | productVo.getName(),productVo.getManufacturer(),new Date(),userInfo.getCompanynumber()); |
| | | detailInfo.setNum(perBoxNum); |
| | | detailInfos.add(detailInfo); |
| | | ProductLocusInfo productLocusInfo = new ProductLocusInfo(dire,new Date(),date, userInfo.getCompany(), |
| | | null,ProductLocusInfo.ENTRY_STATUS,productVo.getBoxNumber().toString()); |
| | | locusInfos.add(productLocusInfo); |
| | | firstNo+=perBoxNum; |
| | | totalNum += perBoxNum; |
| | | } |
| | | |
| | | FireworkDeal.getProductVos(directionCodeFirst,detailFirst,detailLast,productVos,productVo); |
| | | |
| | | orderInfo.setNum(totalNum); |
| | | entryService.save(orderInfo); |
| | | entryDetailService.saveBatch(detailInfos); |
| | | productLocusService.insertBatch(locusInfos); |
| | | boolean flag = stockService.putInStorage(userInfo,productVos,date, type); |
| | | } |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | @GetMapping("/info") |
| | | public Msg getList(@RequestParam(value = "name", required = false) String name, |
| | | @RequestParam(value = "directionCode", required = false) String directionCode, |
| | | @RequestParam(value = "manufacturer", required = false) String manufacturer, |
| | | @RequestParam(value = "type", required = false) String type, |
| | | @RequestParam(value = "secondaryType", required = false) String secondaryType, |
| | | @RequestParam(value = "beginDate") String beginDate, |
| | | @RequestParam(value = "endDate") String endDate, |
| | | @RequestParam(value = "owner")String owner, |
| | | @RequestParam(defaultValue = "0") Integer pageIndex, |
| | | @RequestParam(defaultValue = "10") Integer pageSize, |
| | | String sort, String order){ |
| | | Msg msg = new Msg(true); |
| | | PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); |
| | | Map<String, Object> condition = new HashMap<>(8); |
| | | |
| | | if (StringUtils.isNotBlank(name)) { |
| | | condition.put("name", name); |
| | | } |
| | | if (StringUtils.isNotBlank(directionCode)) { |
| | | condition.put("directionCode", directionCode); |
| | | } |
| | | if (StringUtils.isNotBlank(manufacturer)) { |
| | | condition.put("manufacturer", manufacturer); |
| | | } |
| | | if (StringUtils.isNotBlank(type)) { |
| | | condition.put("type", type); |
| | | } |
| | | if (StringUtils.isNotBlank(secondaryType)) { |
| | | condition.put("secondaryType", secondaryType); |
| | | } |
| | | // if (getUser().getCompanyid() != null){ |
| | | // owner = getUser().getCompanyid().toString(); |
| | | // } |
| | | condition.put("owner",owner); |
| | | condition.put("beginDate",beginDate); |
| | | condition.put("endDate",endDate); |
| | | pageInfo.setCondition(condition); |
| | | stockService.selectDataGrid(pageInfo); |
| | | msg.setResult(pageInfo); |
| | | return msg; |
| | | } |
| | | |
| | | @GetMapping("/info-app") |
| | | public Msg getList2() { |
| | | PageInfo pageInfo = new PageInfo(); |
| | | Map<String, Object> condition = new HashMap<>(); |
| | | UserInfo user = getUser(); |
| | | UserInfo userInfo = userService.getById(user); |
| | | condition.put("owner",userInfo.getCompanyid()); |
| | | pageInfo.setCondition(condition); |
| | | PageInfoExtension<StockTotal> extension = stockService.selectDataGridExtensions(pageInfo); |
| | | |
| | | return success(extension); |
| | | |
| | | } |
| | | |
| | | @GetMapping("/enterpriseStock") |
| | | public Msg getEnterpriseStockList(@RequestParam(value = "name", required = false) String name, |
| | | @RequestParam(value = "province", required = false) String province, |
| | | @RequestParam(value = "city", required = false) String city, |
| | | @RequestParam(value = "area", required = false) String area, |
| | | @RequestParam(value = "town", required = false) String town, |
| | | @RequestParam(value = "community", required = false) String community, |
| | | @RequestParam(value = "enterpriseType", required = false) String type, |
| | | @RequestParam(defaultValue = "0") Integer pageIndex, |
| | | @RequestParam(defaultValue = "10") Integer pageSize, |
| | | String sort, String order){ |
| | | Msg msg = new Msg(true); |
| | | PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); |
| | | Map<String, Object> condition = new HashMap<>(16); |
| | | if (StringUtils.isNotBlank(name)) { |
| | | condition.put("name", name); |
| | | } |
| | | if (StringUtils.isNotBlank(type)) { |
| | | condition.put("type", type); |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(province)) { |
| | | condition.put("province", province); |
| | | } |
| | | if (StringUtils.isNotBlank(city)) { |
| | | condition.put("city", city); |
| | | } |
| | | if (StringUtils.isNotBlank(area)) { |
| | | condition.put("district", area); |
| | | } |
| | | if (StringUtils.isNotBlank(town)) { |
| | | condition.put("town", town); |
| | | } |
| | | if (StringUtils.isNotBlank(community)) { |
| | | condition.put("community", community); |
| | | } |
| | | |
| | | UserInfo userInfo = userService.getById(getUser().getId()); |
| | | |
| | | assert userInfo != null; |
| | | if (userInfo.getCompanynumber() != null){ |
| | | condition.put("operator",userInfo.getCompanynumber()); |
| | | List<Enterprise> subs = enterpriseService.selectSubEnterprise(userInfo.getCompanyid()); |
| | | List<String> subList = subs.stream().map(Enterprise::getEnterprisenumber).collect(Collectors.toList()); |
| | | if (subList.size() > 0) |
| | | condition.put("subList", subList); |
| | | } |
| | | |
| | | //根据用户省市区权限添加/修改查询条件 |
| | | if (userInfo.getCompanyid() == null && userInfo.getType() == 3){ |
| | | boolean provinceNull = StringUtils.isBlank(userInfo.getProvince()); |
| | | boolean cityNull = !provinceNull && StringUtils.isBlank(userInfo.getCity()) ; |
| | | boolean districtNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isBlank(userInfo.getArea()); |
| | | boolean streetNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isNotBlank(userInfo.getArea()) && StringUtils.isBlank(userInfo.getTown()); |
| | | boolean committeeNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isNotBlank(userInfo.getArea()) && StringUtils.isNotBlank(userInfo.getTown()) |
| | | && StringUtils.isBlank(userInfo.getCommunity()); |
| | | if (cityNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | }else if (districtNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | }else if (streetNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | }else if (committeeNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | condition.put("street", userInfo.getTown()); |
| | | }else { |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | condition.put("street", userInfo.getTown()); |
| | | condition.put("committee", userInfo.getCommunity()); |
| | | } |
| | | } |
| | | |
| | | pageInfo.setCondition(condition); |
| | | condition.put("index",(pageIndex-1)*pageSize); |
| | | condition.put("size",pageSize); |
| | | // stockService.selectEnterpriseStockDataGrid(pageInfo); |
| | | // Integer count = enterpriseService.getEnterpriseByLimitCount(condition); |
| | | // limit #{condition.index},#{condition.size} |
| | | |
| | | List<StockVo>stockVos = stockService.selectEnterpriseStocks(condition); |
| | | int index = (pageIndex-1)*pageSize; |
| | | int count = stockVos.size(); |
| | | int size = index+pageSize; |
| | | if (size > count){ |
| | | size = count; |
| | | } |
| | | //总计 |
| | | |
| | | BigDecimal stockNum = new BigDecimal("0"); |
| | | BigDecimal firecracker = new BigDecimal("0"); |
| | | BigDecimal spray = new BigDecimal("0"); |
| | | BigDecimal rotation = new BigDecimal("0"); |
| | | BigDecimal bead = new BigDecimal("0"); |
| | | BigDecimal toy = new BigDecimal("0"); |
| | | BigDecimal combined = new BigDecimal("0"); |
| | | if (stockVos.size() > 0) { |
| | | for (StockVo stockVo : stockVos) { |
| | | stockNum = stockNum.add(stockVo.getStockNum()); |
| | | firecracker = firecracker.add(stockVo.getFirecracker()); |
| | | spray = spray.add(stockVo.getSpray()); |
| | | rotation = rotation.add(stockVo.getRotation()); |
| | | bead = bead.add(stockVo.getBead()); |
| | | toy = toy.add(stockVo.getToy()); |
| | | combined = combined.add(stockVo.getCombined()); |
| | | } |
| | | } |
| | | Map<String, Object> totalRow = new HashMap<>(); |
| | | totalRow.put("name", "总计"); |
| | | totalRow.put("stockNum", stockNum); |
| | | totalRow.put("firecracker", firecracker); |
| | | totalRow.put("spray", spray); |
| | | totalRow.put("rotation", rotation); |
| | | totalRow.put("bead", bead); |
| | | totalRow.put("toy", toy); |
| | | totalRow.put("combined", combined); |
| | | |
| | | pageInfo.setResult(stockVos.subList(index,size)); |
| | | pageInfo.setTotalCount((long) count); |
| | | |
| | | PageInfoExtension<Map> extension = new PageInfoExtension<>(pageInfo); |
| | | extension.setExtension(totalRow); |
| | | msg.setResult(extension); |
| | | return msg; |
| | | } |
| | | |
| | | @GetMapping("/enterpriseStaticStock") |
| | | public Msg enterpriseStaticStock(@RequestParam(value = "name", required = false) String name, |
| | | @RequestParam(value = "province", required = false) String province, |
| | | @RequestParam(value = "city", required = false) String city, |
| | | @RequestParam(value = "area", required = false) String area, |
| | | @RequestParam(value = "town", required = false) String town, |
| | | @RequestParam(value = "community", required = false) String community, |
| | | @RequestParam(value = "enterpriseType", required = false) String type, |
| | | @RequestParam(defaultValue = "0") Integer pageIndex, |
| | | @RequestParam(defaultValue = "10") Integer pageSize, |
| | | String sort, String order){ |
| | | Msg msg = new Msg(true); |
| | | PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); |
| | | Map<String, Object> condition = new HashMap<>(16); |
| | | if (StringUtils.isNotBlank(name)) { |
| | | condition.put("name", name); |
| | | } |
| | | if (StringUtils.isNotBlank(type)) { |
| | | condition.put("type", type); |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(province)) { |
| | | condition.put("province", province); |
| | | } |
| | | if (StringUtils.isNotBlank(city)) { |
| | | condition.put("city", city); |
| | | } |
| | | if (StringUtils.isNotBlank(area)) { |
| | | condition.put("district", area); |
| | | } |
| | | if (StringUtils.isNotBlank(town)) { |
| | | condition.put("town", town); |
| | | } |
| | | if (StringUtils.isNotBlank(community)) { |
| | | condition.put("community", community); |
| | | } |
| | | |
| | | UserInfo userInfo = userService.getById(getUser().getId()); |
| | | |
| | | assert userInfo != null; |
| | | if (userInfo.getCompanynumber() != null){ |
| | | condition.put("operator",userInfo.getCompanynumber()); |
| | | List<Enterprise> subs = enterpriseService.selectSubEnterprise(userInfo.getCompanyid()); |
| | | List<String> subList = subs.stream().map(Enterprise::getEnterprisenumber).collect(Collectors.toList()); |
| | | if (subList.size() > 0) |
| | | condition.put("subList", subList); |
| | | } |
| | | |
| | | //根据用户省市区权限添加/修改查询条件 |
| | | if (userInfo.getCompanyid() == null && userInfo.getType() == 3){ |
| | | boolean provinceNull = StringUtils.isBlank(userInfo.getProvince()); |
| | | boolean cityNull = !provinceNull && StringUtils.isBlank(userInfo.getCity()) ; |
| | | boolean districtNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isBlank(userInfo.getArea()); |
| | | boolean streetNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isNotBlank(userInfo.getArea()) && StringUtils.isBlank(userInfo.getTown()); |
| | | boolean committeeNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isNotBlank(userInfo.getArea()) && StringUtils.isNotBlank(userInfo.getTown()) |
| | | && StringUtils.isBlank(userInfo.getCommunity()); |
| | | if (cityNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | }else if (districtNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | }else if (streetNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | }else if (committeeNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | condition.put("street", userInfo.getTown()); |
| | | }else { |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | condition.put("street", userInfo.getTown()); |
| | | condition.put("committee", userInfo.getCommunity()); |
| | | } |
| | | } |
| | | |
| | | pageInfo.setCondition(condition); |
| | | condition.put("index",(pageIndex-1)*pageSize); |
| | | condition.put("size",pageSize); |
| | | |
| | | List<StaticStock>stocks = staticStockService.selectStaticStocks(condition); |
| | | int index = (pageIndex-1)*pageSize; |
| | | int count = stocks.size(); |
| | | int size = index+pageSize; |
| | | if (size > count){ |
| | | size = count; |
| | | } |
| | | //总计 |
| | | BigDecimal stockNum = new BigDecimal("0"); |
| | | BigDecimal firecracker = new BigDecimal("0"); |
| | | BigDecimal spray = new BigDecimal("0"); |
| | | BigDecimal rotation = new BigDecimal("0"); |
| | | BigDecimal bead = new BigDecimal("0"); |
| | | BigDecimal toy = new BigDecimal("0"); |
| | | BigDecimal combined = new BigDecimal("0"); |
| | | if (stocks.size() > 0) { |
| | | for (StaticStock stock : stocks) { |
| | | stockNum = stockNum.add(stock.getStockNum()); |
| | | firecracker = firecracker.add(stock.getFirecracker()); |
| | | spray = spray.add(stock.getSpray()); |
| | | rotation = rotation.add(stock.getRotation()); |
| | | bead = bead.add(stock.getBead()); |
| | | toy = toy.add(stock.getToy()); |
| | | combined = combined.add(stock.getCombined()); |
| | | } |
| | | } |
| | | Map<String, Object> totalRow = new HashMap<>(); |
| | | totalRow.put("name", "总计"); |
| | | totalRow.put("stockNum", stockNum); |
| | | totalRow.put("firecracker", firecracker); |
| | | totalRow.put("spray", spray); |
| | | totalRow.put("rotation", rotation); |
| | | totalRow.put("bead", bead); |
| | | totalRow.put("toy", toy); |
| | | totalRow.put("combined", combined); |
| | | |
| | | pageInfo.setResult(stocks.subList(index,size)); |
| | | pageInfo.setTotalCount((long) count); |
| | | |
| | | PageInfoExtension<Map> extension = new PageInfoExtension<>(pageInfo); |
| | | extension.setExtension(totalRow); |
| | | msg.setResult(extension); |
| | | return msg; |
| | | } |
| | | |
| | | @GetMapping("/detail") |
| | | public Msg getStockDetailByItemCode( |
| | | @RequestParam(value = "itemCode") String itemCode, |
| | | @RequestParam(value = "enterpriseNumber") String enterpriseNumber, |
| | | @RequestParam(value = "directionCode",required = false) String directionCode, |
| | | @RequestParam(defaultValue = "0") Integer pageIndex, |
| | | @RequestParam(defaultValue = "10") Integer pageSize, |
| | | String sort, String order){ |
| | | Msg msg = new Msg(true); |
| | | PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); |
| | | Map<String, Object> condition = new HashMap<>(16); |
| | | condition.put("itemCode", itemCode); |
| | | Enterprise enterprise = enterpriseService.selectEnterpriseByNumber(enterpriseNumber); |
| | | if (enterprise == null){ |
| | | return new Msg(ERROR_50001); |
| | | } |
| | | condition.put("owner", enterprise.getId()); |
| | | if (StringUtils.isNotBlank(directionCode)) { |
| | | condition.put("directionCode", directionCode); |
| | | } |
| | | pageInfo.setCondition(condition); |
| | | stockService.selectStockDetailByItemCode(pageInfo); |
| | | msg.setResult(pageInfo); |
| | | return msg; |
| | | } |
| | | |
| | | @GetMapping("/enterpriseSale") |
| | | public Msg getEnterpriseSaleList(@RequestParam(value = "name", required = false) String name, |
| | | @RequestParam(value = "beginDate") String beginDate, |
| | | @RequestParam(value = "endDate") String endDate, |
| | | @RequestParam(value = "province", required = false) String province, |
| | | @RequestParam(value = "city", required = false) String city, |
| | | @RequestParam(value = "area", required = false) String area, |
| | | @RequestParam(value = "town", required = false) String town, |
| | | @RequestParam(value = "community", required = false) String community, |
| | | @RequestParam(value = "enterpriseType", required = false) String type, |
| | | @RequestParam(defaultValue = "0") Integer pageIndex, |
| | | @RequestParam(defaultValue = "10") Integer pageSize, |
| | | String sort, String order){ |
| | | Msg msg = new Msg(true); |
| | | PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); |
| | | Map<String, Object> condition = new HashMap<>(16); |
| | | if (StringUtils.isNotBlank(name)) { |
| | | condition.put("name", name); |
| | | } |
| | | if (StringUtils.isNotBlank(beginDate)) { |
| | | condition.put("beginDate", beginDate); |
| | | } |
| | | if (StringUtils.isNotBlank(endDate)) { |
| | | condition.put("endDate", endDate); |
| | | } |
| | | if (StringUtils.isNotBlank(type)) { |
| | | condition.put("type", type); |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(province)) { |
| | | condition.put("province", province); |
| | | } |
| | | if (StringUtils.isNotBlank(city)) { |
| | | condition.put("city", city); |
| | | } |
| | | if (StringUtils.isNotBlank(area)) { |
| | | condition.put("district", area); |
| | | } |
| | | if (StringUtils.isNotBlank(town)) { |
| | | condition.put("town", town); |
| | | } |
| | | if (StringUtils.isNotBlank(community)) { |
| | | condition.put("community", community); |
| | | } |
| | | |
| | | UserInfo userInfo = userService.getById(getUser().getId()); |
| | | |
| | | assert userInfo != null; |
| | | if (userInfo.getCompanynumber() != null){ |
| | | condition.put("operator",userInfo.getCompanynumber()); |
| | | List<Enterprise> subs = enterpriseService.selectSubEnterprise(userInfo.getCompanyid()); |
| | | List<String> subList = subs.stream().map(Enterprise::getEnterprisenumber).collect(Collectors.toList()); |
| | | if (subList.size() > 0) |
| | | condition.put("subList", subList); |
| | | } |
| | | |
| | | //根据用户省市区权限添加/修改查询条件 |
| | | if (userInfo.getCompanyid() == null && userInfo.getType() == 3){ |
| | | boolean provinceNull = StringUtils.isBlank(userInfo.getProvince()); |
| | | boolean cityNull = !provinceNull && StringUtils.isBlank(userInfo.getCity()) ; |
| | | boolean districtNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isBlank(userInfo.getArea()); |
| | | boolean streetNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isNotBlank(userInfo.getArea()) && StringUtils.isBlank(userInfo.getTown()); |
| | | boolean committeeNull = !provinceNull && StringUtils.isNotBlank(userInfo.getCity()) |
| | | && StringUtils.isNotBlank(userInfo.getArea()) && StringUtils.isNotBlank(userInfo.getTown()) |
| | | && StringUtils.isBlank(userInfo.getCommunity()); |
| | | if (cityNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | }else if (districtNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | }else if (streetNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | }else if (committeeNull){ |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | condition.put("street", userInfo.getTown()); |
| | | }else { |
| | | condition.put("province", userInfo.getProvince()); |
| | | condition.put("city", userInfo.getCity()); |
| | | condition.put("district", userInfo.getArea()); |
| | | condition.put("street", userInfo.getTown()); |
| | | condition.put("committee", userInfo.getCommunity()); |
| | | } |
| | | } |
| | | |
| | | pageInfo.setCondition(condition); |
| | | PageInfoExtension<Map> extension = stockService.selectEnterpriseSaleDataGrid(pageInfo); |
| | | msg.setResult(extension); |
| | | return msg; |
| | | } |
| | | |
| | | @GetMapping("/saleInfo") |
| | | public Msg getSaleInfo(@RequestParam(value = "name", required = false) String name, |
| | | @RequestParam(value = "directionCode", required = false) String directionCode, |
| | | @RequestParam(value = "manufacturer", required = false) String manufacturer, |
| | | @RequestParam(value = "type", required = false) String type, |
| | | @RequestParam(value = "enterpriseNumber", required = false) String companyNumber, |
| | | @RequestParam(value = "beginDate") String beginDate, |
| | | @RequestParam(value = "endDate") String endDate, |
| | | @RequestParam(defaultValue = "0") Integer pageIndex, |
| | | @RequestParam(defaultValue = "10") Integer pageSize, |
| | | String sort, String order){ |
| | | Msg msg = new Msg(true); |
| | | PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); |
| | | Map<String, Object> condition = new HashMap<>(8); |
| | | |
| | | if (StringUtils.isNotBlank(name)) { |
| | | condition.put("name", name); |
| | | } |
| | | if (StringUtils.isNotBlank(directionCode)) { |
| | | condition.put("directionCode", directionCode); |
| | | } |
| | | if (StringUtils.isNotBlank(manufacturer)) { |
| | | condition.put("manufacturer", manufacturer); |
| | | } |
| | | if (StringUtils.isNotBlank(type)) { |
| | | condition.put("type", type); |
| | | } |
| | | if (StringUtils.isNotBlank(companyNumber)) { |
| | | condition.put("companyNumber", companyNumber); |
| | | } |
| | | condition.put("beginDate",beginDate); |
| | | condition.put("endDate",endDate); |
| | | pageInfo.setCondition(condition); |
| | | stockService.selectSaleDetailDataGrid(pageInfo); |
| | | msg.setResult(pageInfo); |
| | | return msg; |
| | | } |
| | | |
| | | @PostMapping("/refreshStock") |
| | | public Msg refreshStock(){ |
| | | Msg msg = new Msg(true); |
| | | stockService.saveOrUpdateCurrentStock(getUser().getUsername()); |
| | | return msg; |
| | | } |
| | | |
| | | @PostMapping("/clearStock") |
| | | public Msg clearStock(@RequestBody JSONObject object){ |
| | | String owners = object.getString("owners"); |
| | | UserInfo userInfo = userService.getById(getUser().getId()); |
| | | if (userInfo.getType() != 1){ |
| | | return new Msg(ERROR_70001); |
| | | } |
| | | if (StringUtils.isBlank(owners)){ |
| | | return new Msg(ERROR_10001); |
| | | } |
| | | List<String> list = StringUtils.toList(owners); |
| | | for (String owner : list){ |
| | | Enterprise enterprise = enterpriseService.getById(owner); |
| | | if (enterprise == null){ |
| | | return new Msg(ERROR_50001); |
| | | } |
| | | boolean flag = stockService.clearStock(enterprise); |
| | | } |
| | | return success(); |
| | | } |
| | | |
| | | @PostMapping("/clearStockByItem") |
| | | public Msg clearStockByItem(@RequestBody JSONObject object){ |
| | | String owner = object.getString("owner"); |
| | | String directionCodes = object.getString("directionCodes"); |
| | | UserInfo userInfo = userService.getById(getUser().getId()); |
| | | if (userInfo.getType() != 1){ |
| | | return new Msg(ERROR_70001); |
| | | } |
| | | if (StringUtils.isBlank(owner) || StringUtils.isBlank(directionCodes)){ |
| | | return new Msg(ERROR_10001); |
| | | } |
| | | List<String> list = StringUtils.toList(directionCodes); |
| | | Enterprise enterprise = enterpriseService.getById(owner); |
| | | if (enterprise == null){ |
| | | return new Msg(ERROR_50001); |
| | | } |
| | | boolean flag = stockService.clearStockByItems(enterprise,list); |
| | | return success(); |
| | | } |
| | | |
| | | } |